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:
- File path provided as argument
- Files in
docs/directory - Files in
~/Downloads/matching project name - 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:
- Search the web for official forms, templates, and requirements
- Download PDFs and extract field specifications
- Create a specs document in
docs/(e.g.,docs/oha-form-specs.md) - 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:
- Fetch the site and extract: colors, fonts, logo, tagline, tone
- Update the Tech Stack base with branding details
- 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_attriggers- Storage buckets for file uploads
- Extend
profilestable withrolecolumn if needed
STEP 7: Write PRD
Create docs/prd.md structured as:
- Overview — What we're building and why
- Tech Stack — Confirmed stack choices
- User Roles — Who uses the system and how
- Branding — Colors, fonts, tone
- Database — Table summary with references to migration
- 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: Integrations, polish, launch prep
- Non-Goals — Explicitly out of scope
- Open Questions — From the open_questions table
STEP 8: Generate Tasktree
Use /jat:tasktree docs/prd.md --project <project> to convert the PRD into:
- Epics per sprint
- Child tasks with hierarchical IDs
- Cross-epic dependencies
- Priority assignments (P0 foundation, P1 core, P2 nice-to-have)
STEP 9: Final Commit + Report
Stage the specific files created during this onboarding session, then commit:
# List files created in this session and stage them explicitly
# Never use git add -A, git add ., or git add -u
git status --short # review what changed
git add .jat/ CLAUDE.md supabase/migrations/ # stage only your files
git commit -m "Complete client onboarding: KBs, migration, PRD, tasktree
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>"
Output summary:
╔══════════════════════════════════════════════════════════════╗
║ CLIENT ONBOARDING COMPLETE: <PROJECT> ║
╚══════════════════════════════════════════════════════════════╝
Knowledge Bases:
Always-inject: Project Index, Tech Stack
On-demand: [list with IDs]
Data Tables:
[list tables with row counts]
Database:
Migration: supabase/migrations/YYYYMMDD_<project>_platform.sql
Tables: N tables, N RLS policies
Tasktree:
Epics: N
Tasks: N (P0: X, P1: X, P2: X)
Ready now: [list unblocked tasks]
Open Questions for Client:
[list blocking questions]
Next Steps:
1. Review PRD with client
2. Send open questions to client
3. Create Supabase project and run migration
4. Start picking up tasks: jt ready
Checklist (verify before completing)
- All team members in
teamdata table - All integrations classified (keep/replace/new) in
integrationstable - Open questions documented with who to ask
- Project Index base has correct KB IDs and table names
- Tech Stack base has file structure, roles, branding, domain rules
- CLAUDE.md is thin bootstrap (< 30 lines)
- Supabase migration includes RLS, indexes, triggers, audit_log
- PRD covers all sprints with feature specs
- Tasktree has proper dependencies (foundation unblocked first)
- Domain-specific research completed (forms, regulations, etc.)
- Client branding extracted if website exists