client-onboard

Generate a complete client onboarding package from a project description. Creates project brief, tech stack, milestones, folder structure, CLAUDE.md, and a ready-to-send kickoff message. Run when closing a new freelance client.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "client-onboard" with this command: npx skills add kevdogg102396-afk/client-onboard

Client Onboard — Freelance Project Onboarding Generator

Why This Exists

Kevin closes a client → now needs to look professional and get the project moving within 24 hours. Manual onboarding prep = 2 hours of doc writing. This skill turns a project description into a full onboarding package in one shot.

Trigger

Use when: "onboard a new client", "I just got a project", "set up client files for", "new client [description]", or any time a new freelance project is starting.

Invoked as: /client-onboard [project description]


Process

Step 1: Parse the Project

From $ARGUMENTS, extract:

  • Project type: web app, API, automation, audit, mobile, data pipeline, etc.
  • Client industry: SaaS, ecommerce, healthcare, finance, creator economy, etc.
  • Timeline hints: "need this in 2 weeks", "no rush", "ASAP", specific dates mentioned
  • Budget hints: hourly rate mentioned, fixed price, "small budget", enterprise
  • Tech constraints: "must use React", "we're on AWS", "no vendor lock-in"
  • Team context: "solo founder", "we have a dev team", "replacing a contractor"

Default assumptions when not specified:

  • Timeline: 4-6 weeks (reasonable for most web projects)
  • Budget: $75/hr or $2,000-5,000 fixed (Kevin's standard range)
  • Stack: Next.js + Supabase + Stripe + Python (Kevin's default)
  • Deployment: Vercel (frontend) + Railway or Supabase (backend)

Step 2: Create the Output Directory

Create CLIENT_ONBOARD/ in the current directory.

mkdir -p CLIENT_ONBOARD

If a client name is identifiable from $ARGUMENTS, use: [ClientName]_ONBOARD/ instead.


Step 3: Write PROJECT_BRIEF.md

# Project Brief — [Project Name]
Client: [client name or "TBD"]
Date: [today's date]
Status: DRAFT — pending client confirmation

---

## Project Overview
[2-3 sentences. What is being built, for whom, and why it matters to the client's business. Be specific — no "robust scalable solution" language.]

## Business Goal
[What does the client actually need this to DO for their business? Revenue impact? Time savings? User growth?]

## Success Criteria
- [ ] [Specific measurable outcome 1]
- [ ] [Specific measurable outcome 2]
- [ ] [Specific measurable outcome 3]
- [ ] All features from this brief are delivered and tested
- [ ] Client signs off on final deliverable

## Key Users
- **Primary**: [who uses this most, what they need]
- **Secondary**: [any other users]
- **Admin**: [Kevin or client manages this]

## Core Features (In Scope)
1. [Feature 1 — brief description]
2. [Feature 2 — brief description]
3. [Feature 3 — brief description]
[...continue for all core features...]

## Out of Scope (v1)
- [Feature that sounds related but isn't included] — defer to v2
- [Feature] — available as add-on after launch
- [Feature] — client can self-manage post-launch

## Known Risks
- [Risk 1]: [mitigation]
- [Risk 2]: [mitigation]

## Open Questions
- [ ] [Question that needs client answer before starting]
- [ ] [Question]

---
*This brief is a living document. Changes require written agreement from both parties.*

Step 4: Write TECH_STACK.md

# Tech Stack — [Project Name]
Decided: [today's date]

---

## Recommended Stack

### Frontend
- **Framework**: Next.js 14+ (App Router)
  - *Why*: [specific reason for this project — e.g., "SEO required", "fast iteration", "familiar to Kevin"]
- **UI**: Tailwind CSS + Shadcn/UI components
  - *Why*: Ships faster than custom CSS, consistent design system
- **State**: Zustand (client state) + React Query (server state)
- **TypeScript**: Yes — catches bugs before they reach the client

### Backend
- **Database + Auth + Storage**: Supabase (Postgres)
  - *Why*: [specific reason — e.g., "handles auth out of the box", "real-time subscriptions needed", "generous free tier for MVP"]
- **Edge Functions**: Supabase Edge Functions (Deno)
  - *Why*: Co-located with DB, no cold starts on Vercel hobby plan
- **[If needed] Python API**: FastAPI
  - *Why*: [e.g., "AI/ML workloads", "batch processing", "heavier compute"]

### Payments (if applicable)
- **Stripe**: Checkout, webhooks, Customer Portal
  - *Why*: Industry standard, great DX, handles PCI compliance

### Deployment
- **Frontend**: Vercel (auto-deploy on git push)
- **Backend**: Supabase managed (no ops)
- **[If needed] Workers**: Railway (simple, cheap, no k8s)

### AI/Automation (if applicable)
- **LLM**: Anthropic Claude API (claude-sonnet-4-6)
- **Orchestration**: Custom Python agent or Claude Code skill

---

## Alternatives Considered
| Option | Why Rejected |
|--------|-------------|
| [Alt 1] | [reason] |
| [Alt 2] | [reason] |

## Stack Risks & Mitigations
- **Supabase vendor lock-in**: Postgres is standard — can self-host if needed
- **Vercel pricing at scale**: Set spending limits, switch to Railway if traffic spikes

Customize the stack to the project — if the client specifies AWS, remove Vercel; if they need mobile, add React Native; etc.


Step 5: Write MILESTONES.md

# Milestones — [Project Name]
Total estimated timeline: [X] weeks
Start date: [today or TBD]
Target completion: [date or TBD]

---

## Milestone 1: Foundation — Week 1-2
**Goal:** Project structure, auth, and core data models in place. Nothing works end-to-end yet, but the scaffolding is solid.

**Deliverables:**
- [ ] Repo setup with CI/CD (Vercel auto-deploy)
- [ ] Supabase project + schema (tables, RLS policies)
- [ ] Auth flow (login, signup, session management)
- [ ] Basic navigation shell
- [ ] CLAUDE.md updated with project conventions

**Handoff criteria:** Kevin demos a working login → dashboard skeleton. Client confirms schema looks right.

---

## Milestone 2: Core Features — Week 2-4
**Goal:** The main thing the client paid for is built and working.

**Deliverables:**
- [ ] [Core feature 1] — built and tested
- [ ] [Core feature 2] — built and tested
- [ ] [Core feature 3] — built and tested
- [ ] Error states and loading states implemented
- [ ] Mobile responsive

**Handoff criteria:** Client can use the app end-to-end for the primary use case.

---

## Milestone 3: Polish + Integrations — Week 4-5
**Goal:** Third-party integrations, edge cases handled, UI polished.

**Deliverables:**
- [ ] [Payment / email / analytics integration]
- [ ] Edge cases from testing handled
- [ ] Performance check (Lighthouse score > 85)
- [ ] Security review (RLS policies, input validation, env vars)

**Handoff criteria:** App is production-ready. No known bugs.

---

## Milestone 4: Launch + Handoff — Week 5-6
**Goal:** Live in production, client can operate it.

**Deliverables:**
- [ ] Production deployment (custom domain, SSL)
- [ ] Monitoring set up (Sentry or basic error logging)
- [ ] Client walkthrough recording (Loom)
- [ ] Admin documentation (how to manage users, content, etc.)
- [ ] Code repo access transferred

**Handoff criteria:** Client signs off. Final invoice sent.

---

## Payment Schedule (suggested)
- 25% upfront (project kickoff)
- 25% Milestone 2 complete
- 25% Milestone 3 complete
- 25% final delivery + sign-off

Adjust milestone count and timeline to match project scope. Small projects (1-2 weeks): 2 milestones. Large projects (8+ weeks): 5-6 milestones.


Step 6: Write FOLDER_STRUCTURE.md

Generate a proposed directory layout tailored to the project. Standard Next.js + Supabase layout:

# Folder Structure — [Project Name]

[project-name]/ ├── src/ │ ├── app/ # Next.js App Router pages │ │ ├── (auth)/ # Auth-gated routes │ │ │ ├── dashboard/ │ │ │ └── settings/ │ │ ├── (public)/ # Public routes │ │ │ ├── page.tsx # Landing page │ │ │ └── pricing/ │ │ ├── api/ # API routes │ │ │ └── webhooks/ │ │ ├── layout.tsx │ │ └── globals.css │ ├── components/ │ │ ├── ui/ # Shadcn/UI base components │ │ └── [feature]/ # Feature-specific components │ ├── lib/ │ │ ├── supabase/ # DB client + type-safe helpers │ │ ├── stripe/ # Stripe client + webhook handlers │ │ └── utils.ts │ ├── hooks/ # Custom React hooks │ └── types/ # Shared TypeScript types ├── supabase/ │ ├── migrations/ # SQL migration files │ └── functions/ # Edge functions ├── scripts/ # One-off scripts + automation ├── docs/ # Client-facing documentation │ └── ADMIN_GUIDE.md ├── .env.local # Local env vars (not committed) ├── .env.example # Template for env vars ├── CLAUDE.md # Claude Code context for this project ├── SPEC.md # Project specification └── package.json

Adjust to the actual stack. Python-only projects get a different layout.


Step 7: Write CLAUDE.md (Project Starter)

# [Project Name] — Claude Code Context

## What This Is
[1-2 sentences from PROJECT_BRIEF — what this project does]

## Stack
- Frontend: Next.js 14 (App Router), TypeScript, Tailwind, Shadcn/UI
- Backend: Supabase (Postgres + Auth + Edge Functions)
- Payments: Stripe
- Deployment: Vercel

## Key Paths
- App pages: `src/app/`
- Components: `src/components/`
- DB helpers: `src/lib/supabase/`
- DB schema: `supabase/migrations/`
- Edge functions: `supabase/functions/`

## Dev Commands
```bash
npm run dev          # start local dev server (localhost:3000)
npm run build        # production build
npm run lint         # ESLint check
supabase start       # start local Supabase (Docker required)
supabase db push     # apply migrations to remote

Environment Variables

See .env.example for required vars. Local values in .env.local (not committed).

Conventions

  • TypeScript strict mode — no any, no unchecked nulls
  • Components: PascalCase, one component per file
  • DB types: generate from Supabase dashboard → TypeScript types
  • API routes: validate input with Zod before touching DB
  • RLS: every table has Row Level Security enabled

Current Status

[Today's date] — Project just started. Milestone 1 in progress.

Known Gotchas

  • [Any project-specific things Claude should know]

---

### Step 8: Write KICKOFF_MSG.md

Write a message Kevin can send directly to the client — professional, warm, no fluff:

```markdown
# Kickoff Message — Ready to Send

---

Hey [Client Name],

Great to officially be on board — excited to build [project name] with you.

I've put together the initial project brief and milestone breakdown based on our conversation. Before I write a single line of code, I want to make sure we're aligned on scope and timeline.

Quick asks:

1. **Review the scope**: Does the feature list match what you're expecting? Anything missing or that should be cut from v1?

2. **One open question**: [Most important open question from PROJECT_BRIEF.md]

3. **Kickoff call**: I'd like to do a 30-minute call this week to align on priorities and answer any questions you have. What does your schedule look like [Tuesday-Thursday]? I'm flexible between 10am-4pm ET.

Once we're aligned, I'll kick off Milestone 1 and have a working foundation for you to see within [X] days.

Let me know if you have any questions before then — happy to jump on a quick call or answer over message.

— Kevin

---

*[Attach: PROJECT_BRIEF.md or paste the scope section inline]*

Step 9: Print Summary

Client onboarding package created.

Directory: ./CLIENT_ONBOARD/ (or ./[ClientName]_ONBOARD/)

Files generated:
  ✓ PROJECT_BRIEF.md     — scope, goals, out-of-scope
  ✓ TECH_STACK.md        — recommended stack with rationale
  ✓ MILESTONES.md        — [X] milestones, [Y]-week timeline
  ✓ FOLDER_STRUCTURE.md  — proposed directory layout
  ✓ CLAUDE.md            — project context for Claude Code
  ✓ KICKOFF_MSG.md       — client message, ready to send

Next steps:
  1. Review PROJECT_BRIEF.md — confirm scope is accurate
  2. Adjust MILESTONES.md timeline if needed
  3. Send KICKOFF_MSG.md to client (customize [Client Name])
  4. Copy CLAUDE.md into the new project repo root
  5. Invoice 25% upfront before starting work

Error Handling

  • Very vague description ("build me an app"): Generate with defaults + add 5 open questions to PROJECT_BRIEF.md under "Open Questions" — flag that client answers are required before kicking off
  • Multiple possible stacks: Choose Kevin's default stack, add "Alternatives Considered" section explaining why alternatives were skipped
  • Unclear budget: Leave payment schedule with placeholder percentages, note "confirm rate with client before sending"
  • CLIENT_ONBOARD/ already exists: Add timestamp suffix CLIENT_ONBOARD_[YYYY-MM-DD]/ to avoid overwriting
  • Missing tech details: Generate best-guess and mark assumptions clearly with [ASSUMED] inline

Kevin's Voice — Don't Forget

  • Direct, confident, no corporate fluff
  • "I'll build X using Y because Z" — not "I would suggest potentially leveraging..."
  • Milestones are concrete with clear handoff criteria, not vague "phase" labels
  • Kickoff message reads like a text from a capable contractor, not a formal business letter

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

Consulting

Consulting practice management with engagement scoping, proposal writing, pricing strategy, and client relationship management. Use when user mentions consul...

Registry SourceRecently Updated
0194
Profile unavailable
Coding

Client

Design, manage, and improve client relationships across sales, onboarding, delivery, communication, retention, and account growth. Use when someone needs to...

Registry SourceRecently Updated
089
Profile unavailable
General

Openclaw Diary Setup

OpenClaw Diary 日记系统安装向导。引导用户完成日记系统的初始化设置,包括人设选择、用户身份建立、存储配置和授权管理。 **立即触发当**:用户说「setup my journal」「初始化日记」「配置日记系统」「journal setup」「开始设置日记」。 **主动触发当**:用户首次尝试使用 d...

Registry SourceRecently Updated
058
Profile unavailable