ワンクリックで
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.
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.
| 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 |