Persimmon-Automation-Labs
- 89 skills
- 0 followers
- 9 hours ago last updated
- ▌ Infra Railway Deploy · persimmon-automation-labsDeploy Persimmon Next.js 16 projects to Railway. Use when setting up a new Railway project, linking a GitHub repo, provisioning Postgres or a managed Tigris bucket, configuring env vars, wiring a custom domain, recovering from staged-config drift, or debugging a failed Railway build or deploy. Trigger keywords — railway, deploy, PORT 8080, force-dynamic, railway.toml, railway variables, custom domain, Tigris bucket, managed bucket, serviceConnect, staged config, deployment trigger, prisma db push on deploy.
- ▌
- ▌
- ▌ Meta Deployment Plan · persimmon-automation-labsGenerate a lean, client-facing deployment plan document for a Persimmon Automation Labs milestone. Use when shipping a feature to production, cutting a release, pushing a milestone live, or preparing sign-off for a client go-live. Trigger keywords — deployment plan, ship plan, go-live, release doc, production cutover, milestone launch, cutover checklist, rollout doc.
- ▌ Meta Lifecycle Stage · persimmon-automation-labsReads .claude/project-stage and applies the right rigor for where a Persimmon project is in its life — prototype, mvp, demo, production, maintenance. Governs how to commit/branch/push, when CI must pass, whether deploys are backup-gated, and the testing bar. Rigor ratchets up as the project matures. Invoke at session start (alongside the persimmon orientation) and before any commit, push, or deploy decision. Trigger keywords: project stage, lifecycle stage, can I push to main, do I need a PR, promote to production, this is live now, deploy rigor.
- ▌ Quality Final Review · persimmon-automation-labsPre-delivery QA orchestrator for Persimmon client projects. Runs all review-* skills in parallel (security, performance, type-safety, data-layer, prompt-output), aggregates findings by severity, and produces a ship / don't-ship verdict. Triggers on "final review", "pre-delivery QA", "before shipping", "before we ship", "ship check", "launch check".
- ▌ Stack Server Actions · persimmon-automation-labsNext.js 16 Server Actions patterns for the Persimmon stack. Use when writing form mutations, "use server" functions, revalidating cached data, building progressive-enhancement forms, implementing optimistic UI with useOptimistic, or handling action errors. Covers input validation with Zod, typed result shapes, revalidatePath/revalidateTag, redirects, and the `dynamic = "force-dynamic"` rule for pages that read the DB or auth at request time.
- ▌
- ▌ Workflow Flow Review · persimmon-automation-labsDerives EVERY user flow from a spec (actors × goals), scores each for coverage across spec prose / EARS acceptance criteria / plan task / mockup, and walks the developer through them one at a time in plain language so the human owns the flows — not just the AI. Surfaces gaps to a gaps-backlog. Use after a spec (and ideally mockups) exist, before or alongside workflow-plan, or to audit an existing spec's completeness. This is a workflow-traceability (RTM) pass. Trigger keywords: flow review, are all flows covered, walk me through the flows, RTM, coverage, user journeys, missing flows.
- ▌ Workflow Spec Review · persimmon-automation-labsAdversarial red-team of an approved-draft spec, between workflow-brainstorm and workflow-plan, on the Persimmon stack. Hunts the failure modes that pass a happy-path read but blow up in production — concurrency/oversell under Server Actions, money-state timing across Stripe webhooks, unverifiable acceptance criteria, Railway/NextAuth cutover landmines, and jurisdiction-specific tax/legal rules. Builds a requirements-traceability matrix (forward + backward) and a short client-question list. Use after workflow-brainstorm writes a spec, before workflow-plan. Trigger keywords: spec review, red-team the spec, is this spec ready, RTM, traceability, oversell, money timing, cutover.
- ▌ Backend Notifications · persimmon-automation-labsUnified transactional notification layer for the Persimmon stack — one notify() abstraction over email (Resend) and SMS (Twilio) with graceful degradation when a channel isn't live yet. Use for order confirmations, pickup-ready alerts, reservation reminders, low-score alerts, and any 'email + SMS' requirement. Handles the Twilio A2P 10DLC lead-time trap and post-commit, never-fail-the-action discipline. Trigger keywords: notification, send email, send SMS, Resend, Twilio, confirmation, reminder, alert, A2P 10DLC.
- ▌ Infra Background Jobs · persimmon-automation-labsBuild idempotent, resumable background pipelines on Railway for Persimmon projects. Use when wiring a long-running job (indexer, analyzer, brief generator), choosing a queue (pg-boss vs Inngest vs trigger.dev), designing a Process.status state machine, implementing retry with exponential backoff, making stages resumable, adding progress reporting, handling graceful shutdown, or debugging stuck jobs. Trigger keywords — background job, worker, queue, pg-boss, inngest, trigger.dev, idempotent, resumable, status machine, retry, exponential backoff, poison pill, SIGTERM, stuck job, indexer, analyzer, long-running.
- ▌ Meta Document Project · persimmon-automation-labsAudit, scaffold, or update project documentation for any Persimmon client project. Use when setting up docs for a new project, auditing existing docs, updating CLAUDE.md after architecture changes, or adding ADRs. Enforces Persimmon lean documentation conventions — CLAUDE.md + README.md + scope-of-work + ADRs, no more. Triggers — "audit docs", "update README", "update CLAUDE.md", "scaffold docs", "add ADR".
- ▌ Stack Tailwind Tokens · persimmon-automation-labsTailwind CSS v4 design tokens and CSS-first configuration for the Persimmon stack. Use when setting up a new project's theme, defining color/type/spacing tokens, migrating from v3's `tailwind.config.ts`, using `@theme` vs `@theme inline`, adding container queries, enforcing on-scale values, or debugging missing utility classes. Covers the single-import setup, custom token naming (`--color-*`, `--font-*`), and utility-vs-component-class discipline.
- ▌ Workflow Traceability · persimmon-automation-labsThe lean, tiered provenance system for Persimmon projects — every requirement, screen, flow, and decision resolves upward to a source (the SOW, an ADR, or the standing constitution), with rigor scaled by project-type × project-stage. Defines the ID namespace, the spine, the tiering matrix, the docs/ homes, and the traceability-audit (detection, not enforcement). Invoke when speccing/planning a non-trivial feature, when asked 'is this traceable / are all flows covered', or at a demo/handoff gate. Trigger keywords: traceability, RTM, requirements matrix, orphan, are all flows covered, REQ ID, provenance.
- ▌ Backend Settings Admin · persimmon-automation-labsSelf-service settings & integration-credentials manager for the Persimmon stack — every integration's API keys/IDs/config (Stripe, Twilio, Resend, Google, social) is editable by the client (Owner) through the admin UI. DB-backed via Prisma, secrets encrypted at rest with Node crypto AES-256-GCM, env fallback, per-integration test-connection. Use whenever a build adds any third-party integration. Trigger keywords: settings, integration credentials, API keys, encrypted at rest, env fallback, test connection, self-service config.
- ▌ Frontend Form Patterns · persimmon-automation-labsForm UX conventions for Persimmon internal tools beyond the input baseline — required-field marking, inline field errors, form-level error summary (GOV.UK pattern), character counters, live-search with debounce, and the four empty-state types. Built on Next.js 16 Server Actions + Zod + React (useActionState, useDeferredValue, useTransition, AbortController in useEffect). Use when building any form or a list with search, wiring server-validation errors back to fields, or rendering empty/no-results/error/permission states.
- ▌ Quality Playwright E2e · persimmon-automation-labsAutomated end-to-end testing for Persimmon Next.js 16 apps using Playwright against a deployed or preview site (Railway). Covers HTTP/console-error pre-flight, NextAuth login flows, Server Action form submission and revalidation, presigned-URL uploads, RAG query flows, responsive breakpoints, Core Web Vitals, and axe accessibility — via the Playwright MCP plugin or @playwright/test in the repo. Use after deploy, before a demo, or to wire repeatable E2E into CI. Trigger keywords — e2e, playwright, end-to-end, test the deployed site, verify the deployment, browser test, smoke test.
- ▌ Workflow Feedback Loop · persimmon-automation-labsUse between client review meetings — turn a meeting's mixed punch list into tracked items, triage fix vs design-call vs feature, and close each to verified-on-staging so you walk into the next review with everything in place.
- ▌ Backend Webhook Handler · persimmon-automation-labsStandardized webhook receiver for the Persimmon stack — a Next.js Route Handler that reads the raw body, verifies the provider signature, enforces idempotency via a Prisma unique constraint, logs every event, and signals retry vs. permanent-failure with the right HTTP status. Use when receiving callbacks from Stripe, Twilio, shipping/inventory providers, or any external service. Covers raw-body access, signature verify, the WebhookEvent table, replay no-ops, and failure alerting. Trigger keywords: webhook, callback, signature verification, idempotency, Stripe events, raw body, route handler POST.
- ▌ Frontend Page Templates · persimmon-automation-labsInternal Tool Page Templates — Persimmon Patterns
- ▌ Meta New Client Project · persimmon-automation-labsSet up a new Persimmon Automation Labs client project end-to-end. Use when onboarding a new client, creating a project from a signed SOW, or when Renato says "we got a new client." Creates GitHub repo in Persimmon-Automation-Labs org, clones locally, scaffolds docs via document-project, writes initial commit, registers in the Persimmon clients index. Triggers — "new client", "onboard client", "create project", "scaffold new project", "signed SOW".
- ▌ Meta Project Xray · persimmon-automation-labsInteractive guided walkthrough of a Persimmon client project's pages, data flows, and integrations. Claude leads the user through every route, server action, and external integration — asks them to open each, explains what's happening, verifies understanding, then moves on. Output is a project-map.md doc. Use before client meetings, status emails, onboarding new devs, or when Renato asks "walk me through this project" or "where does X come from." Triggers — "walk me through", "project walkthrough", "guided tour", "project xray", "where does X come from", "how does Y work", "onboard me".
- ▌
- ▌ Data Schema Design · persimmon-automation-labsDesign and review Prisma/Postgres schemas with rigor — independent of domain. Snapshot mutable values onto historical records, complete lifecycle/state enums (Postgres enums, not string constants), join tables for hidden many-to-many, FK/cardinality integrity, money-as-integer-cents, createdAt/updatedAt on every model, and a per-field rationale. Includes the validation 'lenses' to review an existing data model in a spec for missing/extra models and fields, plus gap-bucket classification. Use when designing a Prisma schema or reviewing one. Trigger keywords: schema design, data model, Prisma model, review schema, missing table, enum, snapshot price, join table, cardinality.
- ▌
- ▌
- ▌ Meta Adr Authoring · persimmon-automation-labsWrite MADR-lite Architecture Decision Records in docs/decisions/ for any Persimmon client project. Use when a non-obvious architecture choice is made, when the stack deviates from Persimmon defaults, when a tradeoff was weighed, or when future maintainers will ask "why did we do it this way?" Triggers — "write an ADR", "decision record", "architecture decision", "document this decision", "ADR for X", "record the choice", "why did we pick X".
- ▌ Premium Web Method · persimmon-automation-labs bundleUse when a public page must read as truly premium and authored, not generic/templated/AI-made (the 'any company could have this' problem). Why AI regresses to the median, and the diverge-then-converge process + gates that beat it.
- ▌
- ▌ Stack Zod Boundary · persimmon-automation-labsZod validation at every trust boundary on the Persimmon stack. Use when validating Server Action inputs, API route bodies, webhook payloads, search params, environment variables, or any untrusted data crossing into the app. Covers `safeParse` over `parse`, discriminated unions for polymorphic payloads, branded types for IDs, `.transform` for coercion, `@t3-oss/env-nextjs` for typed env, and anti-patterns (throwing in handlers, trusting `request.json()`, using `unknown` without narrowing).
- ▌ Backend Admin Panel · persimmon-automation-labsScaffolds the admin CRUD layer for the Persimmon stack — NextAuth v5 session + middleware route guard, role model, list/detail/edit/create/delete via Server Components + Server Actions, server-side pagination/search/filter, and dashboard KPI cards + recharts. Use when building an admin panel, internal tool, back-office, or CRUD section for an entity. Trigger keywords: admin panel, CRUD, back-office, dashboard, internal tool, role guard, pagination, recharts.
- ▌ Frontend Responsive · persimmon-automation-labsFrontend Responsive Conventions — Persimmon Patterns
- ▌
- ▌ Data Prisma Pgvector · persimmon-automation-labsPrisma + pgvector schema and query patterns for RAG on the Persimmon stack. Use when designing vector-indexed tables, writing embedding pipelines, choosing HNSW vs IVFFlat, picking embedding dimensions (OpenAI/Voyage/Cohere), writing cosine-distance retrieval queries, or wiring hybrid search (BM25 + vector). Covers the `Unsupported("vector(N)")` Prisma trick, raw `$queryRaw` retrieval, chunk table design, and migration workflow on Railway Postgres.
- ▌ Frontend Data Tables · persimmon-automation-labsResponsive data table conventions for Persimmon internal tools, built with React Server Components, Tailwind v4, and Prisma. Owns the two table patterns (list tables that card-stack on phone, matrix tables that always scroll with a sticky first column), column-priority utilities, row-click → detail via Next Link, kebab overflow actions, wrap-vs-truncate rules, scroll affordances, accessibility, and server-side pagination via searchParams + Prisma skip/take. Use when building or reviewing any tabular list, fixing a table cut off on mobile, deciding sticky columns, or paginating a list page.
- ▌ Frontend File Upload · persimmon-automation-labsReact drop-zone file-upload UX for Persimmon — drag-and-drop with overlaid native input, instant image preview via URL.createObjectURL, client-side UX validation, accessible remove buttons, and upload progress. Built on top of the presigned-S3-PUT flow (the bucket/CORS/presign/confirm mechanics live in infra-s3-uploads). Use when adding any file input beyond a bare browser default, building a drag-and-drop zone, previewing images before upload, or wiring the client UX onto a presigned upload. Trigger keywords — drop zone, drag and drop, file upload UI, image preview, createObjectURL, dropzone, upload progress bar.
- ▌ Legal Glossary · persimmon-automation-labsBrazilian legal terminology reference for prompts, UI copy, and AI output in Piccino and future legal-tech clients. Load whenever Claude is drafting, classifying, summarizing, or generating Portuguese-language legal content — peças processuais, prazos, prescrição, atos processuais, cálculos, trabalhista, civil, bancário. Trigger keywords — petição, contestação, recurso, prescrição, intimação, trabalhista, reclamante, execução, cumprimento de sentença, revisional, CLT, FGTS, SELIC, honorários, advogado, V. Exa., ex tunc, data venia.
- ▌
- ▌ Infra Github CI · persimmon-automation-labsMinimal GitHub Actions CI for Persimmon Next.js 16 projects. Use when setting up CI for a new client repo, adding lint/typecheck/build checks, configuring Dependabot, wiring branch protection, caching .next between runs, adding CodeQL, or debugging a red CI check. Trigger keywords — github actions, ci, workflow, ci.yml, dependabot, codeql, branch protection, prisma validate, tsc noemit, npm ci, cache, concurrency, DATABASE_URL in CI, lint typecheck build.
- ▌ Meta Skill Sync · persimmon-automation-labsInstall or update the Persimmon Automation Labs skills in a client project. Use when setting up a new client repo, when skills aren't activating, after the skills repo releases a new version, or when onboarding a developer. Primary path is the Persimmon plugin (marketplace); a clone/copy fallback is documented for offline/air-gapped use. Triggers — "setup skills", "sync skills", "install skills", "onboard", "skills missing", "skills not activating", "update skills".
- ▌ Security Review · persimmon-automation-labsSecurity audit for Persimmon Next.js 16 + Prisma + Claude stack. Checks HTTP headers, NextAuth config, SQL/XSS injection, secret exposure in NEXT_PUBLIC_*, upload validation, Claude prompt-injection defenses, and npm audit. Triggers on "security review", "security audit", "before shipping", "pre-delivery check", "pre-launch".
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌ Infra S3 Uploads · persimmon-automation-labsImplement presigned-URL direct browser uploads to Tigris or any S3-compatible bucket for Persimmon projects. Use when adding file upload, PDF upload, image upload, configuring bucket CORS, handling ERR_FAILED upload errors, building presigned PUT or GET URLs, multipart upload for large files, or wiring the server-side storage.ts module. Trigger keywords — tigris, s3, presigned, bucket, CORS, PutBucketCorsCommand, upload, multipart, ERR_FAILED, @aws-sdk/client-s3, presigned url, direct upload, browser upload.
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌ Quality Production Readiness · persimmon-automation-labsBroad pre-launch / go-live checklist for Persimmon Next.js 16 + Prisma + Railway projects. Audits Railway deploy config (PORT 8080, force-dynamic, env vars, custom domain), NextAuth/trustHost, error boundaries and logging, Postgres/backup integrity, Stripe live-key cutover, SEO/metadata, accessibility, and client handoff readiness. Delegates deep code-level checks to the review-* skills and security-review rather than restating them. Use before any client handoff, production cutover, or domain switch. Trigger keywords — production ready, go live, pre-launch check, launch checklist, ship to production, cutover, handoff, audit.
- ▌ Quality Review Prompt Output · persimmon-automation-labsPrompt hygiene and Claude output-validation audit for Persimmon stack. Checks prompt centralization, prompt-injection defenses, structured output with tools or Zod-parsed JSON, citation grounding, prompt caching, model routing, idempotent persistence, and eval harness coverage. Triggers on "prompt review", "ai review", "claude audit", "pre-launch", "before shipping".
- ▌
- ▌ Frontend Public Site Conventions · persimmon-automation-labsPublic Website Conventions — Persimmon Patterns
- ▌ Public Website Creative Direction · persimmon-automation-labsUse before designing any bespoke public-facing page or landing page for a Persimmon client. Derives a non-generic visual direction from the client's own strategy: intake questions, one organizing concept, a signature element, and a strategy-to-token table.
- ▌ Frontend Internal Tool Conventions · persimmon-automation-labsInternal Tool Conventions — Persimmon Patterns
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌ Data DB CLI · persimmon-automation-labsInspect and query a Persimmon project's PostgreSQL database WITHOUT writing a throwaway script each time — via a committed read-only-by-default CLI (`npm run db`) and/or a Postgres MCP server for tool-native querying. Covers the safety model (read-only default, --write/--prod guards), setup, and when to use the CLI vs the MCP. Use when you need to look at real data, check a schema, debug a query, or verify a migration applied. Trigger keywords: query the database, look at the data, db cli, run SQL, inspect schema, count rows, check the table, postgres mcp, psql.
- ▌
- ▌
- ▌
- ▌
- ▌ Backend Stripe · persimmon-automation-labsComplete Stripe payment flow for the Persimmon stack — order lifecycle (pending at checkout-start → webhook-confirmed), PaymentIntent creation via the `stripe` SDK in a Server Action, Stripe.js Elements checkout with @stripe/react-stripe-js, idempotent webhook confirmation, refunds, SAQ-A PCI scope, and a go-live checklist. Use when adding Stripe payments, checkout, billing, or e-commerce to a Next.js project. Trigger keywords: Stripe, PaymentIntent, checkout, Elements, refund, payment webhook, order lifecycle, SAQ-A.
- ▌
- ▌ Stack Typescript Strict · persimmon-automation-labsTypeScript strict-mode patterns for the Persimmon stack. Use when setting up `tsconfig.json`, writing exhaustive state machines, replacing `any` with `unknown` + narrowing, branding IDs, avoiding non-null assertions, using `satisfies` vs type assertions, writing type guards, or enforcing return-type annotations. Includes helper files for `invariant()` and `assertNever()` plus tsconfig scaffolding.
- ▌ Client Public Site Build · persimmon-automation-labsUse to build and deploy a public marketing site from only a client's old site URL. One scrollable, DB-driven Next.js 16 page: scrapes brand, builds with React + Tailwind + Prisma, verifies, deploys to Railway staging; asks only the genuinely-human calls.
- ▌ Frontend Feedback System · persimmon-automation-labsUnified Persimmon pattern for UI feedback — toast notifications via sonner, inline flash messages after a Server Action redirect, destructive confirmation via Radix AlertDialog, content/form modals via Radix Dialog, and button loading states with useActionState/useTransition. Use when adding any post-action feedback, confirm-before-delete flow, async button, or modal in a Next.js 16 React app. Covers ARIA live-region behavior (sonner handles it), focus management, and the toast-vs-flash-vs-dialog decision.
- ▌ Data Booking Availability · persimmon-automation-labsSchema and availability engine for reservations and time-slot bookings on the Persimmon stack (Prisma + Postgres) — configurable slots, party-size/seat capacity, blackout dates, lead time, booking horizon, waitlist, and deposit-gated bookings. Use for restaurant table reservations, event/ticket bookings, appointments, pickup windows, or any 'pick a time, limited capacity' feature. Pairs with backend-commerce-concurrency for the atomic claim. Trigger keywords: reservation, booking, time slot, availability, capacity, waitlist, deposit, appointment, blackout, lead time.
- ▌ Frontend CSS Architecture · persimmon-automation-labsFrontend CSS Architecture — Persimmon Patterns
- ▌ Quality Review Data Layer · persimmon-automation-labsPrisma schema, query, and migration audit for Persimmon stack. Checks timestamps, indexes, enums, cascade rules, N+1, unbounded reads, transactions, migration hygiene, pgvector HNSW index, and connection pooling. Triggers on "data layer review", "schema audit", "prisma review", "database review", "pre-launch", "before shipping".
- ▌
- ▌ Backend Account Management · persimmon-automation-labsFull user-account + role lifecycle for Persimmon internal tools — individual role-based login (NextAuth credentials, DB-backed with demo fallback), self-signup → pending → admin role approval, invite links, forgot/set/change password via single-use SHA-256 tokens, and an admin Accounts panel. Enforces the server-side invariants: always ≥1 active admin, admins can promote but not edit/demote other admins, no self-lockout. Use when a tool needs real per-person accounts instead of a shared login. Trigger keywords: user accounts, account management, roles, signup, invite, forgot password, reset password, approve role, admin user panel.
- ▌ Backend Content Management · persimmon-automation-labsThe content layer for Persimmon sites — lets clients edit their own content (team, images, copy, menus, hours) safely. Structured content modeling (typed Prisma collections + blocks, references, taxonomy), constrained editor with preview, a reusable media library with enforced alt text, allowlist-sanitized rich text (isomorphic-dompurify), per-page SEO + slug redirects, and revalidateTag cache-busting on publish. Use when clients need to edit site content without a developer. Trigger keywords: CMS, content management, editable content, media library, rich text sanitize, slug redirect, SEO meta, revalidateTag.
- ▌
- ▌ Quality Review Performance · persimmon-automation-labsPerformance audit for Persimmon Next.js 16 + Prisma + Claude stack. Checks RSC boundaries, bundle size, image and font loading, data-fetching patterns, DB query plans and N+1, Core Web Vitals via Lighthouse, and Claude call parallelism and prompt caching. Triggers on "performance review", "performance audit", "page is slow", "optimize", "pre-launch", "before shipping".
- ▌ Quality Review Type Safety · persimmon-automation-labsTypeScript strict-mode audit for Persimmon stack. Checks tsconfig strictness, any leaks, non-null assertions, ts-ignore usage, missing return types, Zod validation at trust boundaries (Server Actions, API routes), and Prisma type usage. Triggers on "type safety review", "type audit", "strictness check", "pre-launch", "before shipping".
- ▌ Quality Testing Validation · persimmon-automation-labsManual and functional QA for Persimmon Next.js 16 projects — auto-generated checklists by project type (RAG app, internal CRUD, public site, API), Stripe test-card scenarios, Server Action form edge cases, link checking, axe accessibility audit, and responsive breakpoint checks. Validation Claude Code runs against a running or deployed site — not unit tests. Use when a build nears completion or the user says "QA check", "test this", "validate before launch". Trigger keywords — QA, manual testing, validate, test data, Stripe test cards, link check, accessibility, axe, responsive, breakpoints.
- ▌ Backend Commerce Concurrency · persimmon-automation-labsPrevents oversell and double-booking under concurrent checkout on the Persimmon stack — atomic conditional capacity claims via Prisma updateMany, Postgres SELECT ... FOR UPDATE inside $transaction (Serializable where needed), advisory locks, and short-lived holds placed at checkout-start. Use for any finite resource — limited inventory, pickup/time slots, reservation tables, event seats/tickets. Trigger keywords: oversell, double-booking, race condition, inventory, capacity, FOR UPDATE, advisory lock, hold, concurrent checkout.