/jat-onboard
Onboard a new client project — analyze client docs, create knowledge bases, write Supabase migration, generate PRD and tasktree. Run after jst-new has set up the mechanical scaffolding.
$ npx -y skills add joewinke/jat --skill jat-onboard --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/jat-onboard
Context preview
The summary Claude sees to decide when to auto-load this skill.
Onboard a new client project — analyze client docs, create knowledge bases, write Supabase migration, generate PRD and tasktree. Run after jst-new has set up the mechanical scaffolding.
SKILL.md
jat-onboard.SKILL.mdname: jat-onboard
description: Onboard a new client project — analyze client docs, create knowledge bases, write Supabase migration, generate PRD and tasktree. Run after jst-new has set up the mechanical scaffolding.
metadata:
author: jat
version: "1.0"
/jat:onboard — New Client Onboarding
AI-powered onboarding for new client projects. Handles the steps that need intelligent analysis after `jst-new` has done the mechanical setup.
Prerequisites
Run `jst-new <project>` first. It creates:
- Project directory cloned from JST template
- JAT project registration
- Standard data tables (team, integrations, open_questions)
- Bootstrap CLAUDE.md
- Initial git commit
Usage
/jat:onboard # Interactive — prompts for client docs
/jat:onboard docs/client-prd.md # Analyze specific doc
/jat:onboard ~/Downloads/intake.pdf # Analyze from any path
---
STEP 1: Locate Client Documents
Check for input docs in this order: 1. File path provided as argument 2. Files in `docs/` directory 3. Files in `~/Downloads/` matching project name 4. Ask user to provide docs
**Supported formats:** Markdown, PDF, DOCX (converted to .md), plain text
Read ALL provided documents thoroughly before proceeding.
---
STEP 2: Extract Structured Data
From the client documents, extract:
2A: Team Information
Parse out all people mentioned with roles and responsibilities.
# Populate the team data table
jt data exec "INSERT INTO team (name, role, title, email, decision_authority, portal_role, notes) VALUES (...)" --force
2B: Integrations Inventory
Identify all external services, APIs, and tools mentioned. Classify each as: `keep` (integrate), `replacing` (build bespoke), or `new` (we're adding).
# Populate the integrations data table
jt data exec "INSERT INTO integrations (service, purpose, status, integration_type, auth_method, credentials_status, notes) VALUES (...)" --force
2C: Open Questions
Identify gaps in the docs — things we need answered before building. Classify blocking vs non-blocking.
# Populate the open_questions data table
jt data exec "INSERT INTO open_questions (question, ask_who, impact, blocks, status) VALUES (...)" --force
2D: Domain-Specific Data Tables
If the domain has structured data (forms, inventory categories, compliance rules), create additional data tables:
jt data create <table_name> col1:type1 col2:type2 ...
jt data exec "INSERT INTO <table_name> ..." --force
---
STEP 3: Create Knowledge Bases
3A: Always-Inject Bases (every agent gets these)
**Project Index** — Context map of all available knowledge:
jt bases create --name "Project Index" --type manual --always-inject --content "..."
Must include:
- One-liner project description
- List of all knowledge bases with IDs and descriptions
- List of all data tables with useful queries
- Key files to read
**Tech Stack** — Architecture and conventions:
jt bases create --name "Tech Stack" --type manual --always-inject --content "..."
Must include:
- Framework, DB, deployment details
- File/directory structure
- User roles and auth model
- Database table summary
- Branding (colors, fonts, tone)
- Critical domain rules that every agent needs
3B: On-Demand Bases (pulled when relevant)
Create these based on what the client docs contain. Common ones:
| Base | When to Create | Content | |---|---|---| | **Company** | Always | Team, branding, contacts, pricing, social | | **Integrations** | When external services involved | API details, auth methods, what we keep vs replace | | **Current State** | When replacing existing systems | What exists, what's broken, what to preserve | | **Decisions** | Always | Architecture decisions + open questions | | **Clinical/Legal/Compliance** | When regulated domain | Regulatory rules, form requirements, audit needs |
jt bases create --name "Company" --type manual --content "..."
jt bases create --name "Decisions & Open Questions" --type manual --content "..."
---
STEP 4: Research External Requirements
If the domain involves regulatory compliance, state forms, or industry standards:
1. **Search the web** for official forms, templates, and requirements 2. **Download PDFs** and extract field specifications 3. **Create a specs document** in `docs/` (e.g., `docs/oha-form-specs.md`) 4. **Populate domain data tables** with structured form/requirement data
This step is critical — client docs often have errors or outdated info about regulatory requirements. Verify against official sources.
---
STEP 5: Scrape Client Branding
If the client has an existing website:
1. **Fetch the site** and extract: colors, fonts, logo, tagline, tone 2. **Update the Tech Stack base** with branding details 3. **Note any design patterns** to replicate
---
STEP 6: Write Supabase Migration
Based on extracted requirements, create `supabase/migrations/YYYYMMDD000000_<project>_platform.sql`:
**Standard tables to always include:**
- `pipeline_stages` — client/entity journey stages (seeded with INSERT)
- `audit_log` — compliance trail (user, action, entity, IP, timestamp)
**Domain tables:** Based on what the client needs (CRM, scheduling, forms, inventory, etc.)
**Always include:**
- RLS policies for role-based access
- Indexes on frequently queried columns
- `updated_at` triggers
- Storage buckets for file uploads
- Extend `profiles` table with `role` column if needed
---
STEP 7: Write PRD
Create `docs/prd.md` structured as:
1. **Overview** — What we're building and why 2. **Tech Stack** — Confirmed stack choices 3. **User Roles** — Who uses the system and how 4. **Branding** — Colors, fonts, tone 5. **Database** — Table summary with references to migration 6. **Features by Sprint** — Organized into 4-6 sprints
- Sprint 1: Foundation (auth, theme, core data model)
- Sprint 2-N: Features in dependency order
- Last sprint: Integratio
Read more
name: jat-onboard description: Onboard a new client project — analyze client docs, create knowledge bases, write Supabase migration, generate PRD and tasktree. Run after jst-new has set up the mechanical scaffolding. metadata: author: jat version: "1.0"
/jat:onboard — New Client Onboarding
AI-powered onboarding for new client projects. Handles the steps that need intelligent analysis after `jst-new` has done the mechanical setup.
Prerequisites
Run `jst-new <project>` first. It creates:
- Project directory cloned from JST template
- JAT project registration
- Standard data tables (team, integrations, open_questions)
- Bootstrap CLAUDE.md
- Initial git commit
Usage
/jat:onboard # Interactive — prompts for client docs /jat:onboard docs/client-prd.md # Analyze specific doc /jat:onboard ~/Downloads/intake.pdf # Analyze from any path
---
STEP 1: Locate Client Documents
Check for input docs in this order: 1. File path provided as argument 2. Files in `docs/` directory 3. Files in `~/Downloads/` matching project name 4. Ask user to provide docs
**Supported formats:** Markdown, PDF, DOCX (converted to .md), plain text
Read ALL provided documents thoroughly before proceeding.
---
STEP 2: Extract Structured Data
From the client documents, extract:
2A: Team Information
Parse out all people mentioned with roles and responsibilities.
# Populate the team data table jt data exec "INSERT INTO team (name, role, title, email, decision_authority, portal_role, notes) VALUES (...)" --force
2B: Integrations Inventory
Identify all external services, APIs, and tools mentioned. Classify each as: `keep` (integrate), `replacing` (build bespoke), or `new` (we're adding).
# Populate the integrations data table jt data exec "INSERT INTO integrations (service, purpose, status, integration_type, auth_method, credentials_status, notes) VALUES (...)" --force
2C: Open Questions
Identify gaps in the docs — things we need answered before building. Classify blocking vs non-blocking.
# Populate the open_questions data table jt data exec "INSERT INTO open_questions (question, ask_who, impact, blocks, status) VALUES (...)" --force
2D: Domain-Specific Data Tables
If the domain has structured data (forms, inventory categories, compliance rules), create additional data tables:
jt data create <table_name> col1:type1 col2:type2 ... jt data exec "INSERT INTO <table_name> ..." --force
---
STEP 3: Create Knowledge Bases
3A: Always-Inject Bases (every agent gets these)
**Project Index** — Context map of all available knowledge:
jt bases create --name "Project Index" --type manual --always-inject --content "..."
Must include:
- One-liner project description
- List of all knowledge bases with IDs and descriptions
- List of all data tables with useful queries
- Key files to read
**Tech Stack** — Architecture and conventions:
jt bases create --name "Tech Stack" --type manual --always-inject --content "..."
Must include:
- Framework, DB, deployment details
- File/directory structure
- User roles and auth model
- Database table summary
- Branding (colors, fonts, tone)
- Critical domain rules that every agent needs
3B: On-Demand Bases (pulled when relevant)
Create these based on what the client docs contain. Common ones:
| Base | When to Create | Content | |---|---|---| | **Company** | Always | Team, branding, contacts, pricing, social | | **Integrations** | When external services involved | API details, auth methods, what we keep vs replace | | **Current State** | When replacing existing systems | What exists, what's broken, what to preserve | | **Decisions** | Always | Architecture decisions + open questions | | **Clinical/Legal/Compliance** | When regulated domain | Regulatory rules, form requirements, audit needs |
jt bases create --name "Company" --type manual --content "..." jt bases create --name "Decisions & Open Questions" --type manual --content "..."
---
STEP 4: Research External Requirements
If the domain involves regulatory compliance, state forms, or industry standards:
1. **Search the web** for official forms, templates, and requirements 2. **Download PDFs** and extract field specifications 3. **Create a specs document** in `docs/` (e.g., `docs/oha-form-specs.md`) 4. **Populate domain data tables** with structured form/requirement data
This step is critical — client docs often have errors or outdated info about regulatory requirements. Verify against official sources.
---
STEP 5: Scrape Client Branding
If the client has an existing website:
1. **Fetch the site** and extract: colors, fonts, logo, tagline, tone 2. **Update the Tech Stack base** with branding details 3. **Note any design patterns** to replicate
---
STEP 6: Write Supabase Migration
Based on extracted requirements, create `supabase/migrations/YYYYMMDD000000_<project>_platform.sql`:
**Standard tables to always include:**
- `pipeline_stages` — client/entity journey stages (seeded with INSERT)
- `audit_log` — compliance trail (user, action, entity, IP, timestamp)
**Domain tables:** Based on what the client needs (CRM, scheduling, forms, inventory, etc.)
**Always include:**
- RLS policies for role-based access
- Indexes on frequently queried columns
- `updated_at` triggers
- Storage buckets for file uploads
- Extend `profiles` table with `role` column if needed
---
STEP 7: Write PRD
Create `docs/prd.md` structured as:
1. **Overview** — What we're building and why 2. **Tech Stack** — Confirmed stack choices 3. **User Roles** — Who uses the system and how 4. **Branding** — Colors, fonts, tone 5. **Database** — Table summary with references to migration 6. **Features by Sprint** — Organized into 4-6 sprints
- Sprint 1: Foundation (auth, theme, core data model)
- Sprint 2-N: Features in dependency order
- Last sprint: Integratio
Agents ship, suggest, repeat. You supervise — or they run on their own. JAT is the complete, self-contained environment for agentic development. Task management, agent orchestration, code editor, git integration, terminal access—all unified in a single IDE.
Repo: joewinke/jat
Other skills on jat.
- /jat-complete
Complete current JAT task with full verification. Verifies work (tests/lint), commits changes, writes memory entry, closes task, and emits final signal. Session ends after completion.
Open skill - /jat-start
Begin working on a JAT task. Registers agent identity, selects a task, searches memory, detects conflicts, declares files, emits IDE signals, and starts work. Use this at the beginning of every JAT session.
Open skill - /jat-verify
Escalatory browser verification - open the app in a real browser and test it. Two modes - builder-verify (test the feature you just built) and cold-review (fresh-eyes reviewer pass over a whole surface or site). Use after "READY FOR REVIEW", before shipping a preview/demo to a
Open skill

