一键导入
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.
// 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.
| name | jat-start |
| description | 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. |
| metadata | {"author":"jat","version":"1.0"} |
One agent = one session = one task. Each session handles exactly one task from start to completion.
/skill:jat-start # Show available tasks
/skill:jat-start task-id # Start specific task
/skill:jat-start AgentName # Resume as AgentName
/skill:jat-start AgentName task-id # Resume as AgentName on task
Add quick to skip conflict checks.
IMPORTANT: Minimize round-trips by issuing independent tool calls in parallel.
Startup uses 3 parallel rounds. Each round issues all calls simultaneously, then processes results before the next round.
ROUND 1 (parallel) → ROUND 2 (parallel) → ROUND 3 (parallel) → Banner
Identity Starting signal Task update
Task details Memory search Working signal
Git status Prior task search Integration sync
Issue ALL of these tool calls in a single message:
1A: Identity — Check for IDE pre-registration + get session ID:
TMUX_SESSION=$(tmux display-message -p '#S' 2>/dev/null); PRE_REG_FILE=".claude/sessions/.tmux-agent-${TMUX_SESSION}"; test -f "$PRE_REG_FILE" && cat "$PRE_REG_FILE" || echo "NO_PRE_REG"
get-current-session-id
1B: Task details (if task-id provided):
jt show "$TASK_ID" --json
If no task-id, show jt ready and stop here.
1C: Git status:
git branch --show-current && git diff-index --quiet HEAD -- && echo "clean" || echo "dirty"
Manual Registration (only if NO_PRE_REG):
am-register --name "$AGENT_NAME" --program pi --model "$MODEL_ID"
tmux rename-session "jat-${AGENT_NAME}" 2>/dev/null
mkdir -p .claude/sessions
echo "$AGENT_NAME" > ".claude/sessions/agent-${SESSION_ID}.txt"
Issue ALL of these tool calls in a single message:
2A: Starting signal:
jat-signal starting '{
"agentName": "NAME", "sessionId": "ID", "taskId": "TASK_ID",
"taskTitle": "TITLE", "project": "PROJECT", "model": "MODEL_ID",
"tools": ["bash","read","write","edit"], "gitBranch": "BRANCH",
"gitStatus": "clean", "uncommittedFiles": []
}'
2B: Memory search:
jat-memory search "key terms from task title" --limit 5 2>/dev/null || echo "NO_MEMORY_INDEX"
2C: Prior task search:
DATE_7=$(date -d '7 days ago' +%Y-%m-%d 2>/dev/null || date -v-7d +%Y-%m-%d); jt search "$SEARCH_TERM" --updated-after "$DATE_7" --limit 20 --json
Look for duplicates, related work, and in-progress tasks in similar areas.
Issue ALL of these tool calls in a single message:
3A: Update task status:
jt update "$TASK_ID" --status in_progress --assignee "$AGENT_NAME" --files "relevant/files/**"
3B: Working signal (incorporate memory results into approach):
jat-signal working '{
"taskId": "TASK_ID", "taskTitle": "TASK_TITLE",
"approach": "Brief description of implementation plan",
"expectedFiles": ["src/**/*.ts"], "baselineCommit": "COMMIT_HASH"
}'
Note: Integration status sync (
in_progress) fires automatically fromjt update --status in_progress— no agent action needed.
╔════════════════════════════════════════════════════════════╗
║ STARTING WORK: {TASK_ID} ║
╚════════════════════════════════════════════════════════════╝
Agent: {AGENT_NAME}
Task: {TASK_TITLE}
Priority: P{X}
Approach:
{YOUR_APPROACH_DESCRIPTION}
CRITICAL: Never hardcode or invent passwords. Never reset user passwords for testing.
When you need credentials (API keys, database URLs, service role keys, login credentials), use jat-secret:
jat-secret --list # List all available secrets
jat-secret <project>-supabase-url # Project Supabase URL
jat-secret <project>-supabase-service-role-key # Service role key
eval $(jat-secret --export) # Load all as env vars
For browser testing that requires login:
jat-secret flush-admin-email and jat-secret flush-admin-passwordauth.admin.updateUserById() or PUT /auth/v1/admin/users/ to set a password for browser verificationneeds_input and ask the user — do NOT reset the passwordResetting passwords to test UI is destructive — it locks real users out of their accounts.
Always emit needs_input signal BEFORE asking questions:
jat-signal needs_input '{
"taskId": "TASK_ID",
"question": "Brief description of what you need",
"questionType": "clarification"
}'
Question types: clarification, decision, approval, blocker, duplicate_check
After getting a response, emit working signal to resume.
Emit review signal BEFORE presenting results:
jat-signal review '{
"taskId": "TASK_ID",
"taskTitle": "TASK_TITLE",
"summary": ["What you accomplished", "Key changes"],
"filesModified": [
{"path": "src/file.ts", "changeType": "modified", "linesAdded": 50, "linesRemoved": 10}
]
}'
Then output:
READY FOR REVIEW: {TASK_ID}
Summary:
- [accomplishment 1]
- [accomplishment 2]
Run /skill:jat-complete when ready to close this task.
| Signal | When | Required Fields |
|---|---|---|
starting | After registration | agentName, sessionId, project, model, gitBranch, gitStatus, tools |
working | Before coding | taskId, taskTitle, approach |
needs_input | Before asking questions | taskId, question, questionType |
review | When work complete | taskId, taskTitle, summary |
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.
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.
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.