← Back to Skills Marketplace
kevdogg102396-afk

client-onboard

by kevdogg102396-afk · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
364
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install client-onboard
Description
Generate a complete client onboarding package from a project description. Creates project brief, tech stack, milestones, folder structure, CLAUDE.md, and a r...
README (SKILL.md)

\r \r

Client Onboard — Freelance Project Onboarding Generator\r

\r

Why This Exists\r

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.\r \r

Trigger\r

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.\r \r Invoked as: /client-onboard [project description]\r \r ---\r \r

Process\r

\r

Step 1: Parse the Project\r

\r From $ARGUMENTS, extract:\r

  • Project type: web app, API, automation, audit, mobile, data pipeline, etc.\r
  • Client industry: SaaS, ecommerce, healthcare, finance, creator economy, etc.\r
  • Timeline hints: "need this in 2 weeks", "no rush", "ASAP", specific dates mentioned\r
  • Budget hints: hourly rate mentioned, fixed price, "small budget", enterprise\r
  • Tech constraints: "must use React", "we're on AWS", "no vendor lock-in"\r
  • Team context: "solo founder", "we have a dev team", "replacing a contractor"\r \r Default assumptions when not specified:\r
  • Timeline: 4-6 weeks (reasonable for most web projects)\r
  • Budget: $75/hr or $2,000-5,000 fixed (Kevin's standard range)\r
  • Stack: Next.js + Supabase + Stripe + Python (Kevin's default)\r
  • Deployment: Vercel (frontend) + Railway or Supabase (backend)\r \r ---\r \r

Step 2: Create the Output Directory\r

\r Create CLIENT_ONBOARD/ in the current directory.\r \r

mkdir -p CLIENT_ONBOARD\r
```\r
\r
If a client name is identifiable from `$ARGUMENTS`, use: `[ClientName]_ONBOARD/` instead.\r
\r
---\r
\r
### Step 3: Write PROJECT_BRIEF.md\r
\r
```markdown\r
# Project Brief — [Project Name]\r
Client: [client name or "TBD"]\r
Date: [today's date]\r
Status: DRAFT — pending client confirmation\r
\r
---\r
\r
## Project Overview\r
[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.]\r
\r
## Business Goal\r
[What does the client actually need this to DO for their business? Revenue impact? Time savings? User growth?]\r
\r
## Success Criteria\r
- [ ] [Specific measurable outcome 1]\r
- [ ] [Specific measurable outcome 2]\r
- [ ] [Specific measurable outcome 3]\r
- [ ] All features from this brief are delivered and tested\r
- [ ] Client signs off on final deliverable\r
\r
## Key Users\r
- **Primary**: [who uses this most, what they need]\r
- **Secondary**: [any other users]\r
- **Admin**: [Kevin or client manages this]\r
\r
## Core Features (In Scope)\r
1. [Feature 1 — brief description]\r
2. [Feature 2 — brief description]\r
3. [Feature 3 — brief description]\r
[...continue for all core features...]\r
\r
## Out of Scope (v1)\r
- [Feature that sounds related but isn't included] — defer to v2\r
- [Feature] — available as add-on after launch\r
- [Feature] — client can self-manage post-launch\r
\r
## Known Risks\r
- [Risk 1]: [mitigation]\r
- [Risk 2]: [mitigation]\r
\r
## Open Questions\r
- [ ] [Question that needs client answer before starting]\r
- [ ] [Question]\r
\r
---\r
*This brief is a living document. Changes require written agreement from both parties.*\r
```\r
\r
---\r
\r
### Step 4: Write TECH_STACK.md\r
\r
```markdown\r
# Tech Stack — [Project Name]\r
Decided: [today's date]\r
\r
---\r
\r
## Recommended Stack\r
\r
### Frontend\r
- **Framework**: Next.js 14+ (App Router)\r
  - *Why*: [specific reason for this project — e.g., "SEO required", "fast iteration", "familiar to Kevin"]\r
- **UI**: Tailwind CSS + Shadcn/UI components\r
  - *Why*: Ships faster than custom CSS, consistent design system\r
- **State**: Zustand (client state) + React Query (server state)\r
- **TypeScript**: Yes — catches bugs before they reach the client\r
\r
### Backend\r
- **Database + Auth + Storage**: Supabase (Postgres)\r
  - *Why*: [specific reason — e.g., "handles auth out of the box", "real-time subscriptions needed", "generous free tier for MVP"]\r
- **Edge Functions**: Supabase Edge Functions (Deno)\r
  - *Why*: Co-located with DB, no cold starts on Vercel hobby plan\r
- **[If needed] Python API**: FastAPI\r
  - *Why*: [e.g., "AI/ML workloads", "batch processing", "heavier compute"]\r
\r
### Payments (if applicable)\r
- **Stripe**: Checkout, webhooks, Customer Portal\r
  - *Why*: Industry standard, great DX, handles PCI compliance\r
\r
### Deployment\r
- **Frontend**: Vercel (auto-deploy on git push)\r
- **Backend**: Supabase managed (no ops)\r
- **[If needed] Workers**: Railway (simple, cheap, no k8s)\r
\r
### AI/Automation (if applicable)\r
- **LLM**: Anthropic Claude API (claude-sonnet-4-6)\r
- **Orchestration**: Custom Python agent or Claude Code skill\r
\r
---\r
\r
## Alternatives Considered\r
| Option | Why Rejected |\r
|--------|-------------|\r
| [Alt 1] | [reason] |\r
| [Alt 2] | [reason] |\r
\r
## Stack Risks & Mitigations\r
- **Supabase vendor lock-in**: Postgres is standard — can self-host if needed\r
- **Vercel pricing at scale**: Set spending limits, switch to Railway if traffic spikes\r
```\r
\r
Customize the stack to the project — if the client specifies AWS, remove Vercel; if they need mobile, add React Native; etc.\r
\r
---\r
\r
### Step 5: Write MILESTONES.md\r
\r
```markdown\r
# Milestones — [Project Name]\r
Total estimated timeline: [X] weeks\r
Start date: [today or TBD]\r
Target completion: [date or TBD]\r
\r
---\r
\r
## Milestone 1: Foundation — Week 1-2\r
**Goal:** Project structure, auth, and core data models in place. Nothing works end-to-end yet, but the scaffolding is solid.\r
\r
**Deliverables:**\r
- [ ] Repo setup with CI/CD (Vercel auto-deploy)\r
- [ ] Supabase project + schema (tables, RLS policies)\r
- [ ] Auth flow (login, signup, session management)\r
- [ ] Basic navigation shell\r
- [ ] CLAUDE.md updated with project conventions\r
\r
**Handoff criteria:** Kevin demos a working login → dashboard skeleton. Client confirms schema looks right.\r
\r
---\r
\r
## Milestone 2: Core Features — Week 2-4\r
**Goal:** The main thing the client paid for is built and working.\r
\r
**Deliverables:**\r
- [ ] [Core feature 1] — built and tested\r
- [ ] [Core feature 2] — built and tested\r
- [ ] [Core feature 3] — built and tested\r
- [ ] Error states and loading states implemented\r
- [ ] Mobile responsive\r
\r
**Handoff criteria:** Client can use the app end-to-end for the primary use case.\r
\r
---\r
\r
## Milestone 3: Polish + Integrations — Week 4-5\r
**Goal:** Third-party integrations, edge cases handled, UI polished.\r
\r
**Deliverables:**\r
- [ ] [Payment / email / analytics integration]\r
- [ ] Edge cases from testing handled\r
- [ ] Performance check (Lighthouse score > 85)\r
- [ ] Security review (RLS policies, input validation, env vars)\r
\r
**Handoff criteria:** App is production-ready. No known bugs.\r
\r
---\r
\r
## Milestone 4: Launch + Handoff — Week 5-6\r
**Goal:** Live in production, client can operate it.\r
\r
**Deliverables:**\r
- [ ] Production deployment (custom domain, SSL)\r
- [ ] Monitoring set up (Sentry or basic error logging)\r
- [ ] Client walkthrough recording (Loom)\r
- [ ] Admin documentation (how to manage users, content, etc.)\r
- [ ] Code repo access transferred\r
\r
**Handoff criteria:** Client signs off. Final invoice sent.\r
\r
---\r
\r
## Payment Schedule (suggested)\r
- 25% upfront (project kickoff)\r
- 25% Milestone 2 complete\r
- 25% Milestone 3 complete\r
- 25% final delivery + sign-off\r
```\r
\r
Adjust milestone count and timeline to match project scope. Small projects (1-2 weeks): 2 milestones. Large projects (8+ weeks): 5-6 milestones.\r
\r
---\r
\r
### Step 6: Write FOLDER_STRUCTURE.md\r
\r
Generate a proposed directory layout tailored to the project. Standard Next.js + Supabase layout:\r
\r
```markdown\r
# Folder Structure — [Project Name]\r
\r
```\r
[project-name]/\r
├── src/\r
│   ├── app/                    # Next.js App Router pages\r
│   │   ├── (auth)/             # Auth-gated routes\r
│   │   │   ├── dashboard/\r
│   │   │   └── settings/\r
│   │   ├── (public)/           # Public routes\r
│   │   │   ├── page.tsx        # Landing page\r
│   │   │   └── pricing/\r
│   │   ├── api/                # API routes\r
│   │   │   └── webhooks/\r
│   │   ├── layout.tsx\r
│   │   └── globals.css\r
│   ├── components/\r
│   │   ├── ui/                 # Shadcn/UI base components\r
│   │   └── [feature]/          # Feature-specific components\r
│   ├── lib/\r
│   │   ├── supabase/           # DB client + type-safe helpers\r
│   │   ├── stripe/             # Stripe client + webhook handlers\r
│   │   └── utils.ts\r
│   ├── hooks/                  # Custom React hooks\r
│   └── types/                  # Shared TypeScript types\r
├── supabase/\r
│   ├── migrations/             # SQL migration files\r
│   └── functions/              # Edge functions\r
├── scripts/                    # One-off scripts + automation\r
├── docs/                       # Client-facing documentation\r
│   └── ADMIN_GUIDE.md\r
├── .env.local                  # Local env vars (not committed)\r
├── .env.example                # Template for env vars\r
├── CLAUDE.md                   # Claude Code context for this project\r
├── SPEC.md                     # Project specification\r
└── package.json\r
```\r
```\r
\r
Adjust to the actual stack. Python-only projects get a different layout.\r
\r
---\r
\r
### Step 7: Write CLAUDE.md (Project Starter)\r
\r
```markdown\r
# [Project Name] — Claude Code Context\r
\r
## What This Is\r
[1-2 sentences from PROJECT_BRIEF — what this project does]\r
\r
## Stack\r
- Frontend: Next.js 14 (App Router), TypeScript, Tailwind, Shadcn/UI\r
- Backend: Supabase (Postgres + Auth + Edge Functions)\r
- Payments: Stripe\r
- Deployment: Vercel\r
\r
## Key Paths\r
- App pages: `src/app/`\r
- Components: `src/components/`\r
- DB helpers: `src/lib/supabase/`\r
- DB schema: `supabase/migrations/`\r
- Edge functions: `supabase/functions/`\r
\r
## Dev Commands\r
```bash\r
npm run dev          # start local dev server (localhost:3000)\r
npm run build        # production build\r
npm run lint         # ESLint check\r
supabase start       # start local Supabase (Docker required)\r
supabase db push     # apply migrations to remote\r
```\r
\r
## Environment Variables\r
See `.env.example` for required vars. Local values in `.env.local` (not committed).\r
\r
## Conventions\r
- TypeScript strict mode — no `any`, no unchecked nulls\r
- Components: PascalCase, one component per file\r
- DB types: generate from Supabase dashboard → TypeScript types\r
- API routes: validate input with Zod before touching DB\r
- RLS: every table has Row Level Security enabled\r
\r
## Current Status\r
[Today's date] — Project just started. Milestone 1 in progress.\r
\r
## Known Gotchas\r
- [Any project-specific things Claude should know]\r
```\r
\r
---\r
\r
### Step 8: Write KICKOFF_MSG.md\r
\r
Write a message Kevin can send directly to the client — professional, warm, no fluff:\r
\r
```markdown\r
# Kickoff Message — Ready to Send\r
\r
---\r
\r
Hey [Client Name],\r
\r
Great to officially be on board — excited to build [project name] with you.\r
\r
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.\r
\r
Quick asks:\r
\r
1. **Review the scope**: Does the feature list match what you're expecting? Anything missing or that should be cut from v1?\r
\r
2. **One open question**: [Most important open question from PROJECT_BRIEF.md]\r
\r
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.\r
\r
Once we're aligned, I'll kick off Milestone 1 and have a working foundation for you to see within [X] days.\r
\r
Let me know if you have any questions before then — happy to jump on a quick call or answer over message.\r
\r
— Kevin\r
\r
---\r
\r
*[Attach: PROJECT_BRIEF.md or paste the scope section inline]*\r
```\r
\r
---\r
\r
### Step 9: Print Summary\r
\r
```\r
Client onboarding package created.\r
\r
Directory: ./CLIENT_ONBOARD/ (or ./[ClientName]_ONBOARD/)\r
\r
Files generated:\r
  ✓ PROJECT_BRIEF.md     — scope, goals, out-of-scope\r
  ✓ TECH_STACK.md        — recommended stack with rationale\r
  ✓ MILESTONES.md        — [X] milestones, [Y]-week timeline\r
  ✓ FOLDER_STRUCTURE.md  — proposed directory layout\r
  ✓ CLAUDE.md            — project context for Claude Code\r
  ✓ KICKOFF_MSG.md       — client message, ready to send\r
\r
Next steps:\r
  1. Review PROJECT_BRIEF.md — confirm scope is accurate\r
  2. Adjust MILESTONES.md timeline if needed\r
  3. Send KICKOFF_MSG.md to client (customize [Client Name])\r
  4. Copy CLAUDE.md into the new project repo root\r
  5. Invoice 25% upfront before starting work\r
```\r
\r
---\r
\r
## Error Handling\r
\r
- **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\r
- **Multiple possible stacks**: Choose Kevin's default stack, add "Alternatives Considered" section explaining why alternatives were skipped\r
- **Unclear budget**: Leave payment schedule with placeholder percentages, note "confirm rate with client before sending"\r
- **CLIENT_ONBOARD/ already exists**: Add timestamp suffix `CLIENT_ONBOARD_[YYYY-MM-DD]/` to avoid overwriting\r
- **Missing tech details**: Generate best-guess and mark assumptions clearly with `[ASSUMED]` inline\r
\r
## Kevin's Voice — Don't Forget\r
- Direct, confident, no corporate fluff\r
- "I'll build X using Y because Z" — not "I would suggest potentially leveraging..."\r
- Milestones are concrete with clear handoff criteria, not vague "phase" labels\r
- Kickoff message reads like a text from a capable contractor, not a formal business letter\r
Usage Guidance
This skill is instruction-only and appears coherent for generating client onboarding documents. Before installing: (1) be aware it will create folders and files in whatever current working directory the agent runs in — run it first in a safe/empty directory if you want to inspect output; (2) the agent is allowed to use Bash and file read/write tools, so ensure your agent's tool permissions are restricted if you do not want any shell/file access beyond creating the onboarding package; (3) the SKILL.md references Anthropic/Claude only as a recommended LLM — no API keys are required by the skill as provided, but adding LLM integrations would require storing credentials; (4) review and customize default assumptions (timeline, budget, stack) because the skill embeds personal defaults (Kevin's preferences) that may not fit your workflow.
Capability Analysis
Type: OpenClaw Skill Name: client-onboard Version: 1.0.0 The skill is classified as suspicious due to a critical shell injection vulnerability identified in `SKILL.md`. In 'Step 2: Create the Output Directory', the instruction to create a directory named `[ClientName]_ONBOARD/` uses `[ClientName]` directly derived from `$ARGUMENTS` without sanitization. Given that the skill has `Bash` tool access, an attacker could inject arbitrary shell commands via the `$ARGUMENTS` input (e.g., `'; rm -rf /; evil_client'`), leading to potential remote code execution. While there is no clear evidence of intentional malicious behavior like data exfiltration or persistence, this vulnerability poses a significant security risk.
Capability Assessment
Purpose & Capability
Name/description match the SKILL.md: the skill parses a project description and generates onboarding docs and a folder structure. It does not request unrelated credentials or binaries.
Instruction Scope
SKILL.md explicitly instructs the agent to parse the provided arguments, create a CLIENT_ONBOARD directory (or client-specific variant), and write multiple markdown files. This stays within the onboarding purpose. Note: allowed-tools include Bash/Read/Write/Glob, so the agent has filesystem and shell capabilities — the instructions only use mkdir and file writes, but the tool set would permit broader file and shell access if the agent were allowed to deviate.
Install Mechanism
No install spec and no code files — instruction-only. Nothing is downloaded or written to disk beyond the onboarding artifacts the skill itself describes.
Credentials
The skill declares no required environment variables or credentials, which is proportional. It mentions Anthropic/Claude as a suggested LLM in the recommended stack, but does not require or attempt to read an API key; if you later extend integration to call Anthropic, that would require credentials.
Persistence & Privilege
always is false, the skill is user-invocable, and it does not request persistent system changes or modify other skills. Its runtime behavior is limited to creating files in the current working directory.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install client-onboard
  3. After installation, invoke the skill by name or use /client-onboard
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release: Automates creation of a full freelance client onboarding package from a single project description. - Generates project brief, custom tech stack, milestone plan, and proposed folder structure. - Includes CLAUDE.md and a ready-to-send kickoff message. - Tailors assumptions for timeline, budget, and stack when details aren’t provided. - Runs when onboarding a new freelance client for streamlined, professional setup.
Metadata
Slug client-onboard
Version 1.0.0
License
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is client-onboard?

Generate a complete client onboarding package from a project description. Creates project brief, tech stack, milestones, folder structure, CLAUDE.md, and a r... It is an AI Agent Skill for Claude Code / OpenClaw, with 364 downloads so far.

How do I install client-onboard?

Run "/install client-onboard" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is client-onboard free?

Yes, client-onboard is completely free (open-source). You can download, install and use it at no cost.

Which platforms does client-onboard support?

client-onboard is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created client-onboard?

It is built and maintained by kevdogg102396-afk (@kevdogg102396-afk); the current version is v1.0.0.

💬 Comments