Customization
The runner is intentionally simple. Most changes are one-line edits.
Add a new product
In runner/run-qa.py, append to the PRODUCTS dict:
"my-second-product": {
"name": "My Second Product",
"site_base": "https://my-domain.com",
"website_path": "/my-second-product/",
"expected_price_cents": 4900,
"required_root_files": ["index.html","START-HERE.html","Open-Suite.command","Open-Suite.bat","Open-Suite.sh","assets/my-logo.jpg"],
"required_subfolder_indexes": ["docs","assets","examples"],
},
Mirror the same block in the n8n workflow's Config Code node.
Change the required entry-point list
If your product convention is different (e.g., you don't use OS launchers, or you call them something else):
- Edit
spec/GumRoad.md§ "Buyer entry-point checklist" — list your actual files - Update
required_root_filesinrunner/run-qa.pyand the n8n Config node to match
The runner cross-checks the two. If they disagree it fails the spec-validation step.
Add a new check
In runner/run-qa.py, the check_product() function is where most checks live. Each check is one line:
rec("Section name", "Check description", boolean_expression, "detail string")
Same pattern in the n8n workflow's Product checks Code node.
If you add a check, also add a sentence in spec/GumRoad.md describing what it validates so the spec-checker doesn't flag the new section as undocumented drift.
Run scheduled / continuous QA
In the n8n workflow, replace the Manual Trigger with a Schedule Trigger (e.g., daily at 09:00). The flow runs unattended; failures show up in your Slack QA channel.
Multi-creator agency mode
If you're running QA for multiple companies' Gumroad accounts:
- One Gumroad token per account → one credential per account in n8n
- One
runner/run-qa.pyper account in separate folders, OR a single script that loops over aCLIENTS = {token: products_dict}map - Notion log DB with a "Client" column for filtering
Swap Slack for another notifier
In the n8n workflow, replace the Slack: pass + Slack: fail nodes with any of:
- Microsoft Teams
- Discord webhook
- PagerDuty event
- Plain SMTP email
The slack_text body works in any of them with minor markdown adjustments.
"Meerkat LLC" and the Professor Meerkat mascot are marks of Meerkat LLC.
© 2026 Meerkat LLC · meerkat-llc.com · support@meerkat-llc.com · built with care in Anna, Texas