lindy-prod-checklist
A technical audit checklist for securing and preparing Lindy AI agents for production usage.
Install
mkdir -p .claude/skills/lindy-prod-checklist && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6336" && unzip -o skill.zip -d .claude/skills/lindy-prod-checklist && rm skill.zipInstalls to .claude/skills/lindy-prod-checklist
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Production readiness checklist for Lindy AI agent deployments.Key capabilities
- →Audit agent security and prompt quality
- →Verify webhook authentication and secret management
- →Validate operational readiness for go-live
- →Configure monitoring and credit usage alerts
How it works
The checklist provides a structured verification process for security, configuration, and monitoring before an agent is deployed to a production environment.
Inputs & outputs
When to use lindy-prod-checklist
- →Audit production agent security
- →Verify webhook authentication
- →Validate operational go-live readiness
- →Perform production configuration reviews
About this skill
Lindy Production Checklist
Overview
Create an evidence-backed go/no-go decision for a Lindy agent. Treat the Lindy dashboard and the organization's current contract, workspace configuration, and runbooks as the authorities. Do not infer product entitlements, prices, quotas, security features, support terms, or compliance commitments from this skill.
Use Read to inspect configuration and evidence, Write or Edit to
maintain the readiness record, and Bash(curl:*) only for an approved synthetic
webhook probe. Never place a secret in the record or command output.
Prerequisites
- Access to the target Lindy workspace and its Tasks view.
- An exported webhook-trigger URL and its nonempty Lindy-generated trigger secret.
- A separate, nonempty callback secret when a Lindy HTTP Request action calls your application. Never reuse the trigger secret as the callback secret.
- A synthetic test case with no production personal or confidential data and a unique correlation ID.
- Access to current contract/workspace evidence for any claim about pricing, credits, thresholds, secret rotation, SSO, SCIM, support, or a BAA.
- A durable queue when callback work cannot be completed safely within the receiver's synchronous response window.
Instructions
1. Open an evidence record
Record the workspace, agent, reviewer, date, release identifier, and links to
artifacts. Give every check one of three verdicts: PASS, FAIL, or
NOT VERIFIED. A missing entitlement or policy document is NOT VERIFIED, not
an assumed pass.
2. Verify the two authentication boundaries
For an application calling a Lindy webhook trigger:
- Confirm the URL uses HTTPS and its hostname is exactly
public.lindy.ai. - Confirm the authorization value is the secret generated for that trigger.
- Keep the URL and trigger secret in an approved secret manager; redact both from screenshots, logs, tickets, and readiness reports.
For a Lindy HTTP Request action calling your application:
- Generate and store an independent
LINDY_CALLBACK_SECRETin your application. - Configure the action to send
Authorization: Bearer <callback-secret>. - Reject a missing or mismatched value before accepting or acting on the body.
- Apply a bounded schema and payload-size limit before enqueueing work.
Lindy documents the trigger-side generated secret and configurable headers for HTTP Request actions. It does not make one secret interchangeable across both directions.
3. Prove a real synthetic task is created
Run a probe only after the URL and secret checks pass:
set -euo pipefail
: "${LINDY_TRIGGER_URL:?LINDY_TRIGGER_URL is required}"
: "${LINDY_TRIGGER_SECRET:?LINDY_TRIGGER_SECRET is required}"
case "$LINDY_TRIGGER_URL" in
https://public.lindy.ai/api/v1/webhooks/*) ;;
*) echo "Refusing to send the trigger secret to a non-Lindy host" >&2; exit 1 ;;
esac
CORRELATION_ID="prod-readiness-REPLACE_WITH_UNIQUE_ID"
HTTP_STATUS=$(curl --silent --show-error --output /dev/null \
--write-out '%{http_code}' --max-time 30 \
--request POST "$LINDY_TRIGGER_URL" \
--header "Authorization: Bearer $LINDY_TRIGGER_SECRET" \
--header 'Content-Type: application/json' \
--data "{\"correlationId\":\"$CORRELATION_ID\",\"kind\":\"readiness_probe\"}")
case "$HTTP_STATUS" in
2??) echo "Transport accepted; verify the task separately: $CORRELATION_ID" ;;
*) echo "Trigger rejected with HTTP $HTTP_STATUS" >&2; exit 1 ;;
esac
The 2xx response proves only transport acceptance. Find a task with the unique correlation ID in Lindy's Tasks view, then verify its expected actions and final state. If authentication is intentionally broken, require a non-2xx response and also verify that no task was created. Do not capture the response body in the evidence record.
4. Qualify callback durability
A callback receiver passes only if it authenticates first, validates a bounded schema, and persists accepted work to a durable queue before returning success. An in-memory promise, timer, or process-local queue is not durable enqueue. Test:
- valid callback -> one durable job and a 2xx response;
- wrong or missing callback secret -> non-2xx and no job;
- malformed or oversized payload -> non-2xx and no job;
- duplicate correlation ID -> no duplicate side effect; and
- worker interruption after enqueue -> the job remains recoverable.
5. Complete the operational gate
- Exercise the happy path and each material failure path with synthetic data.
- Confirm OAuth integrations and target resources using the workspace UI.
- Establish an observed latency and task-success baseline; choose alert thresholds from the organization's risk appetite and actual workload.
- Link the incident runbook, owner, escalation path, rollback or disable procedure, data-retention decision, and monitoring evidence.
- Verify pricing, credit budget, secret-rotation cadence, SSO, SCIM, BAA, and other compliance statements only from current contract or workspace evidence. Mark unavailable or inapplicable features explicitly.
6. Make the decision
Block launch for any failed authentication boundary, unverified task creation, unauthenticated callback, nondurable accepted work, missing rollback path, or unresolved high-severity finding. The accountable owner must accept any remaining lower-severity risk in the evidence record.
Output
Produce a readiness record containing:
- release, workspace, agent, owner, reviewer, and review timestamp;
- per-check
PASS/FAIL/NOT VERIFIEDverdicts with evidence links; - synthetic correlation IDs and task identifiers, without payloads or secrets;
- callback rejection, deduplication, and durable-enqueue test results;
- contract-dependent claims with their current source and applicability;
- unresolved risks, accountable owners, and due dates; and
- a final
GOorNO-GOdecision with the approving owner.
Examples
Minimal go/no-go summary
# Release r42 readiness
- Trigger auth: PASS -- synthetic task task-123 matched correlation prod-readiness-42
- Callback auth: PASS -- wrong secret rejected; zero jobs created
- Durable enqueue: PASS -- job survived worker restart and completed once
- SSO/SCIM: NOT VERIFIED -- not required for this release; contract owner recorded
- Rollback: PASS -- agent disable procedure tested by operator
- Open risks: none above accepted severity
Decision: GO
Approver: release owner
Correct no-go outcome
If the webhook returns 2xx but no corresponding task appears, record
Task creation: NOT VERIFIED and choose NO-GO. Do not substitute a public-host
reachability check for task-level proof.
Error Handling
| Failure | Required response |
|---|---|
Trigger URL is not HTTPS on exact public.lindy.ai host | Do not attach the trigger secret; block the probe |
| Missing or reused secret | Generate distinct secrets, store them correctly, and repeat the tests |
| 2xx without a matching task | Treat as unverified; inspect the Tasks view and agent trigger configuration |
| Rejected request creates a task | Block launch and escalate the authentication failure |
| Callback acknowledges before durable enqueue | Change the receiver contract and repeat interruption testing |
| Contract-dependent feature cannot be proven | Mark NOT VERIFIED; do not advertise or depend on it |
Resources
When not to use it
- →Do not launch agents without defined fallback behaviors
- →Do not use development webhook URLs in production
Prerequisites
Limitations
- →Webhook receivers must return 200 quickly to maintain performance
How it compares
This provides a formal audit framework for production readiness instead of relying on informal testing.
Compared to similar skills
lindy-prod-checklist side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| lindy-prod-checklist (this skill) | 1 | 2mo | Caution | Intermediate |
| django-verification | 5 | 6mo | Review | Intermediate |
| deployment-validation-config-validate | 1 | 5mo | Review | Advanced |
| documenso-prod-checklist | 1 | 2mo | Caution | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
django-verification
affaan-m
Verification loop for Django projects: migrations, linting, tests with coverage, security scans, and deployment readiness checks before release or PR.
deployment-validation-config-validate
sickn33
You are a configuration management expert specializing in validating, testing, and ensuring the correctness of application configurations. Create comprehensive validation schemas, implement configurat
documenso-prod-checklist
jeremylongshore
Execute Documenso production deployment checklist and rollback procedures. Use when deploying Documenso integrations to production, preparing for launch, or implementing go-live procedures. Trigger with phrases like "documenso production", "deploy documenso", "documenso go-live", "documenso launch checklist".
gh-actions-validator
jeremylongshore
Validate use when validating GitHub Actions workflows for Google Cloud and Vertex AI deployments. Trigger with phrases like "validate github actions", "setup workload identity federation", "github actions security", "deploy agent with ci/cd", or "automate vertex ai deployment". Enforces Workload Identity Federation (WIF), validates OIDC permissions, ensures least privilege IAM, and implements security best practices.
ideogram-multi-env-setup
jeremylongshore
Configure Ideogram across development, staging, and production environments. Use when setting up multi-environment deployments, configuring per-environment secrets, or implementing environment-specific Ideogram configurations. Trigger with phrases like "ideogram environments", "ideogram staging", "ideogram dev prod", "ideogram environment setup", "ideogram config by env".
perplexity-prod-checklist
jeremylongshore
Execute Perplexity production deployment checklist and rollback procedures. Use when deploying Perplexity integrations to production, preparing for launch, or implementing go-live procedures. Trigger with phrases like "perplexity production", "deploy perplexity", "perplexity go-live", "perplexity launch checklist".