con un clic
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.
// 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.
| 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"} |
AI-powered onboarding for new client projects. Handles the steps that need intelligent analysis after jst-new has done the mechanical setup.
Run jst-new <project> first. It creates:
/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
Check for input docs in this order:
docs/ directory~/Downloads/ matching project nameSupported formats: Markdown, PDF, DOCX (converted to .md), plain text
Read ALL provided documents thoroughly before proceeding.
From the client documents, extract:
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
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
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
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
Project Index — Context map of all available knowledge:
jt bases create --name "Project Index" --type manual --always-inject --content "..."
Must include:
Tech Stack — Architecture and conventions:
jt bases create --name "Tech Stack" --type manual --always-inject --content "..."
Must include:
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 "..."
If the domain involves regulatory compliance, state forms, or industry standards:
docs/ (e.g., docs/oha-form-specs.md)This step is critical — client docs often have errors or outdated info about regulatory requirements. Verify against official sources.
If the client has an existing website:
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:
updated_at triggersprofiles table with role column if neededCreate docs/prd.md structured as:
Use /jat:tasktree docs/prd.md --project <project> to convert the PRD into:
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
team data tableintegrations tableComplete 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.
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.
Escalatory browser verification - open the app in a real browser and test the feature you built. Use after showing "READY FOR REVIEW" when the user asks you to verify in a browser.