Missions Workflow
The complete missions lifecycle from pre-planning through validation and completion
Overview
Missions are the highest-level unit of work in tmux-ide. A mission defines what you are building, milestones gate progress into phases, and the orchestrator dispatches tasks to specialized agents automatically.
This page walks through the full lifecycle: pre-planning, planning, execution, validation, and completion.
Scaffolded Directory Structure
Running tmux-ide init --template missions creates the following project structure:
your-project/
├── ide.yml # tmux-ide layout config
├── .tasks/
│ ├── tasks.json # Mission, milestones, goals, and tasks
│ └── validation-contract.md # Assertion definitions (VAL-XXX)
├── .tmux-ide/
│ ├── skills/
│ │ ├── frontend.md # Skill prompt for frontend agents
│ │ ├── backend.md # Skill prompt for backend agents
│ │ ├── reviewer.md # Skill prompt for the validator
│ │ └── researcher.md # Skill prompt for the researcher
│ └── library/
│ ├── architecture.md # Repo-wide context injected into every dispatch
│ ├── learnings.md # Appended automatically as tasks complete
│ └── research-findings.md # Accumulated research output
└── AGENTS.md # Project boundaries and rules for every agentThe ide.yml produced by the missions template gives you this layout:
┌───────────┬───────────┬───────────┐
│ │ │ │
│ Lead │ Frontend │ Backend │ 70%
│ │ │ │
├───────────┼───────────┼───────────┤
│ Validator │ Researcher│ Shell │ 30%
└───────────┴───────────┴───────────┘Phase 1: Pre-Planning
Before creating the mission in tmux-ide, the lead prepares the shared knowledge that agents will rely on.
Define the mission scope
Decide what the mission delivers, what is in scope, and what is explicitly out of scope. Write this down in plain language -- it becomes the mission description.
Write the validation contract
Create .tasks/validation-contract.md with concrete, testable assertions. Each assertion gets a unique ID that tasks will reference later.
# Validation Contract — Auth v2
## Authentication
- **VAL-AUTH-001**: POST /api/auth/login returns a JWT on valid credentials
- **VAL-AUTH-002**: POST /api/auth/login returns 401 on invalid credentials
- **VAL-AUTH-003**: POST /api/auth/refresh returns a new access token given a valid refresh token
- **VAL-AUTH-004**: Protected routes return 403 when the JWT is expired
## Test Coverage
- **VAL-TEST-001**: Unit tests cover all auth service functions with >90% line coverage
- **VAL-TEST-002**: Integration tests exercise the full login-refresh-logout flowWrite the contract before planning starts. It defines "done" up front so the validator knows exactly what to check.
Update architecture.md
Add relevant context to .tmux-ide/library/architecture.md so dispatched agents understand the codebase they are working in.
# Architecture
## Stack
- Next.js 14 (App Router)
- Drizzle ORM + PostgreSQL
- JWT via jose library
## Key Paths
- `src/app/api/auth/` — auth route handlers
- `src/lib/auth/` — token creation, validation, refresh logic
- `src/middleware.ts` — route protection
## Conventions
- All API routes return `{ data }` or `{ error }` JSON envelopes
- Tests live next to source files as `*.test.ts`Phase 2: Planning
Mission status: planning
Create the mission
tmux-ide mission set "Auth v2" --description "JWT login, token refresh, route protection, and full test coverage"Create milestones
Milestones are sequential gates. M1 must complete before M2 starts.
tmux-ide milestone create "Foundation" --sequence 1
tmux-ide milestone create "Implementation" --sequence 2
tmux-ide milestone create "Validation & Polish" --sequence 3Create tasks
Each task belongs to a milestone and can declare which validation assertions it fulfills, what specialty it needs, and what goal it serves.
# M1 — Foundation
tmux-ide task create "Set up auth database schema" \
--milestone M1 \
--specialty backend \
--priority 1 \
--goal "Establish the data layer for auth"
tmux-ide task create "Create JWT utility functions" \
--milestone M1 \
--specialty backend \
--priority 2 \
--fulfills "VAL-AUTH-001,VAL-AUTH-003" \
--goal "Token creation and validation helpers"
# M2 — Implementation
tmux-ide task create "Build login endpoint" \
--milestone M2 \
--specialty backend \
--priority 1 \
--fulfills "VAL-AUTH-001,VAL-AUTH-002" \
--goal "POST /api/auth/login with JWT response" \
--depends "001,002"
tmux-ide task create "Build refresh endpoint" \
--milestone M2 \
--specialty backend \
--priority 2 \
--fulfills "VAL-AUTH-003" \
--goal "POST /api/auth/refresh with token rotation" \
--depends "002"
tmux-ide task create "Add route protection middleware" \
--milestone M2 \
--specialty backend \
--priority 3 \
--fulfills "VAL-AUTH-004" \
--goal "Middleware that rejects expired or missing JWTs"
tmux-ide task create "Build login page" \
--milestone M2 \
--specialty frontend \
--priority 2 \
--goal "Login form that calls the auth API"
# M3 — Validation & Polish
tmux-ide task create "Write unit tests for auth service" \
--milestone M3 \
--specialty backend \
--priority 1 \
--fulfills "VAL-TEST-001" \
--goal "Unit test coverage for all auth functions"
tmux-ide task create "Write integration tests for auth flow" \
--milestone M3 \
--specialty backend \
--priority 2 \
--fulfills "VAL-TEST-002" \
--goal "End-to-end login, refresh, and logout test" \
--depends "007"Check coverage
Before leaving planning, verify that every assertion in the validation contract is claimed by at least one task.
tmux-ide validate coverageValidation Coverage Report
──────────────────────────
VAL-AUTH-001 ✓ Covered by: 002, 003
VAL-AUTH-002 ✓ Covered by: 003
VAL-AUTH-003 ✓ Covered by: 002, 004
VAL-AUTH-004 ✓ Covered by: 005
VAL-TEST-001 ✓ Covered by: 007
VAL-TEST-002 ✓ Covered by: 008
Coverage: 6/6 assertions covered (100%)If any assertion is uncovered, create additional tasks before proceeding.
Activate the mission
tmux-ide mission plan-completeThis transitions the mission from planning to active, locks all milestones except M1, and the orchestrator begins dispatching.
Phase 3: Execution
Mission status: active
Once the mission is active and you launch the session with tmux-ide, the orchestrator takes over.
How dispatch works
On each tick (default every 5 seconds), the orchestrator:
- Identifies idle agent panes (any pane that is not the lead and is not currently working)
- Picks the highest-priority unblocked task in the current active milestone
- Prefers panes whose
specialtymatches the task's--specialty - Builds a full context prompt from the mission description, milestone context, goal, task details, the agent's skill file, and the knowledge library
- Sends the prompt to the idle agent via
tmux send-keys
What agents receive
Each dispatched agent gets a prompt containing:
- Mission: title, description, and current status
- Milestone: which phase this task belongs to
- Goal: the high-level objective the task serves
- Task: title, description, dependencies, and fulfillment targets
- Skill: the contents of
.tmux-ide/skills/<specialty>.md - Library:
architecture.md,learnings.md,AGENTS.md
Task completion
When an agent finishes, it reports back:
tmux-ide task done 003 \
--proof "Login endpoint implemented. Returns JWT on valid creds, 401 on invalid. Tests in src/app/api/auth/login/route.test.ts" \
--summary "Implemented POST /api/auth/login using jose for JWT signing. Passwords verified with bcrypt. Response shape: { data: { accessToken, refreshToken, expiresIn } }"The --proof explains what was done and how to verify it. The --summary is appended to learnings.md so subsequent agents benefit from the knowledge.
Monitoring progress
tmux-ide mission status # Mission overview with milestone progress
tmux-ide metrics # Task counts, completion rate, time estimates
tmux-ide metrics agents # Per-agent utilization and task history
tmux-ide orch # Live orchestrator state (agents, queue, events)Phase 4: Validation
Milestone status: validating
Validation happens automatically when all tasks in a milestone complete.
Automatic validator dispatch
When the last task in a milestone is marked done, the orchestrator:
- Transitions the milestone status to
validating - Dispatches the validator agent with the validation contract and all assertion IDs that belong to this milestone
- The validator reads the contract, inspects the code, runs tests, and checks each assertion
Reporting assertions
The validator reports the status of each assertion:
tmux-ide validate assert VAL-AUTH-001 --status passing \
--evidence "POST /api/auth/login returns { accessToken, refreshToken } on valid credentials. Verified via integration test."
tmux-ide validate assert VAL-AUTH-002 --status passing \
--evidence "POST /api/auth/login returns 401 with { error: 'Invalid credentials' }. Verified via integration test."
tmux-ide validate assert VAL-AUTH-003 --status failing \
--evidence "Refresh endpoint exists but does not rotate the refresh token. Old token remains valid after refresh."When all assertions pass
If every assertion for the milestone passes:
- The milestone status moves to
done - The next milestone in sequence is unlocked and set to
active - The orchestrator begins dispatching tasks from the new milestone
When an assertion fails
If any assertion fails:
- The orchestrator auto-creates remediation tasks targeting the failing assertions
- The milestone status resets to
active - The remediation tasks are dispatched like any other task
- When they complete, the milestone returns to
validatingand the validator runs again
# Example: orchestrator auto-creates a remediation task
# Task 009: "Fix refresh token rotation (remediation for VAL-AUTH-003)"
# --milestone M2 --specialty backend --fulfills "VAL-AUTH-003" --priority 1Viewing validation state
tmux-ide validate reportValidation Report
─────────────────
Milestone: M2 — Implementation
VAL-AUTH-001 ✓ passing Login returns JWT on valid creds
VAL-AUTH-002 ✓ passing Invalid creds return 401
VAL-AUTH-003 ✗ failing Refresh token not rotated
VAL-AUTH-004 ✓ passing Expired JWT returns 403
Status: 3/4 passing — remediation in progressPhase 5: Mission Completion
When the final milestone's validation passes and all milestones are done, the mission is complete.
What happens automatically
- The mission status transitions to
complete - The orchestrator stops dispatching
- The lead is notified of completion
- Final metrics are recorded
Optional: create a pull request
If your workflow ends with a PR, you can create one from the shell:
gh pr create --title "Auth v2" --body "JWT login, refresh, route protection, and full test coverage"Review the final state
tmux-ide mission status
tmux-ide validate report
tmux-ide metrics historyQuick Reference
| Phase | Mission Status | Key Commands |
|---|---|---|
| Pre-Planning | -- | Edit validation-contract.md, architecture.md |
| Planning | planning | mission set, milestone create, task create, validate coverage, mission plan-complete |
| Execution | active | Automatic dispatch. Monitor with metrics, orch |
| Validation | active (milestone: validating) | validate assert, validate report |
| Completion | complete | mission status, metrics history |
Tips
- Write the validation contract first. It forces clarity about what "done" means before any code is written.
- Use
--fulfillson every task. Uncovered assertions are a planning gap thatvalidate coveragewill catch. - Keep milestones small (3-7 tasks). Large milestones delay validation feedback.
- Add
--dependsbetween tasks that have real ordering constraints, but avoid over-constraining -- the orchestrator handles priority and specialty matching. - Check
tmux-ide metrics agentsto spot agents that are idle or overloaded, and adjust specialties if needed. - The knowledge library is cumulative. Task summaries in
learnings.mdhelp later agents avoid re-discovering the same patterns.
End-to-end walkthrough: ship an auth system
This walkthrough takes you from an empty repo to a merged pull request for a JWT-based auth system, with three Claude agents collaborating autonomously under one tmux session. Every command below is real and runs against the v2.5.0 CLI.
The mission has three milestones:
| Milestone | Theme | Tasks |
|---|---|---|
M1 | Foundation | DB schema, JWT helpers, env wiring |
M2 | Endpoints | /login, /refresh, route-protection middleware |
M3 | Tests | Unit coverage + integration login-refresh-logout flow |
Once the lead types tmux-ide mission plan-complete, the orchestrator does the rest: dispatch, retry-with-backoff, validation, auto-remediation, milestone advancement, and the final pull request.
Step 1 — Scaffold the project
From the repo root:
tmux-ide init --template missionsThis writes ide.yml, .tasks/validation-contract.md (empty stub), .tmux-ide/skills/*.md, and .tmux-ide/library/architecture.md. Open ide.yml and confirm the layout — the missions template ships with a six-pane grid:
┌───────────┬───────────┬───────────┐
│ │ │ │
│ Lead │ Frontend │ Backend │ 70%
│ │ │ │
├───────────┼───────────┼───────────┤
│ Validator │ Researcher│ Shell │ 30%
└───────────┴───────────┴───────────┘The pane roles are not cosmetic. The orchestrator reads role, specialty, and skill from every pane to decide who gets which task:
panes:
- title: Lead
command: claude
role: lead
focus: true
- title: Frontend
command: claude
role: teammate
specialty: frontend
- title: Backend
command: claude
role: teammate
specialty: backend
- title: Validator
command: claude
role: validator
skill: reviewer
- title: Researcher
command: claude
role: researcher
skill: researcherNote orchestrator.master_pane: Lead in the generated config — the lead pane is excluded from auto-dispatch so it remains a planning surface, never a worker.
Step 2 — Pre-planning artifacts
Before any mission state exists, the lead fills in the two files that every dispatched agent will see.
.tasks/validation-contract.md — the acceptance test plan:
# Validation Contract — JWT Auth
## Authentication
**VAL-AUTH-001**: POST /api/auth/login returns 200 + JWT on valid credentials
**VAL-AUTH-002**: POST /api/auth/login returns 401 on invalid credentials
**VAL-AUTH-003**: POST /api/auth/refresh issues a new access token and rotates the refresh token
**VAL-AUTH-004**: Protected routes return 403 when the access token is expired
## Tests
**VAL-TEST-001**: Unit tests cover all auth service functions with >=90% line coverage
**VAL-TEST-002**: Integration test exercises login → refresh → protected request → logout.tmux-ide/library/architecture.md — codebase context injected into every dispatch:
# Architecture
## Stack
- Next.js 15 (App Router) on Node 22
- Drizzle ORM + PostgreSQL
- `jose` for JWT signing, `argon2` for password hashing
## Key paths
- `src/app/api/auth/` — route handlers
- `src/lib/auth/` — token + password helpers
- `src/middleware.ts` — bearer-token route protection
## Conventions
- Routes return `{ data }` or `{ error }`; never raw values
- Tests colocate as `*.test.ts` next to sourceSee validation-contracts for the full assertion-ID convention and per-domain prefixes (VAL-AUTH-, VAL-API-, VAL-DATA-, …).
Step 3 — Launch the session
tmux-ideAll six panes boot. The lead pane sits idle, waiting for you. The other five Claude panes are also idle — but they will not act until a mission is active and tasks exist.
Step 4 — Create the mission
In the lead pane (or any shell with the project cwd):
tmux-ide mission create "Ship JWT auth" \
--description "Implement JWT login, refresh-with-rotation, and route-protection middleware. Cover with unit + integration tests. No frontend work in this mission."Verify:
tmux-ide mission showMission: Ship JWT auth
Status: planning
Description: Implement JWT login, refresh-with-rotation, ...
Milestones: 0
Tasks: 0While status: planning, the orchestrator will not dispatch — this is the safe space to lay out milestones and tasks.
Step 5 — Create milestones
Milestones are ordered gates. With dispatch_mode: missions in ide.yml (the missions template default), only the lowest-sequence active milestone is eligible for dispatch.
tmux-ide milestone create "Foundation" --sequence 1
tmux-ide milestone create "Endpoints" --sequence 2
tmux-ide milestone create "Tests" --sequence 3tmux-ide milestone listM1 Foundation sequence=1 status=planning
M2 Endpoints sequence=2 status=planning
M3 Tests sequence=3 status=planningStep 6 — Create tasks against M1, M2, M3
Every task is bound to a milestone, gets a priority, and — most importantly — declares which validation assertions it --fulfills. The validator uses these links to know which assertions to run after the milestone closes.
M1 — Foundation:
tmux-ide task create "Add users + sessions schema" \
--milestone M1 \
--specialty backend \
--priority 1 \
--goal "Persist user credentials and refresh-token sessions"
tmux-ide task create "JWT sign/verify helpers" \
--milestone M1 \
--specialty backend \
--priority 2 \
--fulfills "VAL-AUTH-001,VAL-AUTH-004" \
--goal "Pure functions for access + refresh token lifecycle"M2 — Endpoints:
tmux-ide task create "POST /api/auth/login" \
--milestone M2 \
--specialty backend \
--priority 1 \
--fulfills "VAL-AUTH-001,VAL-AUTH-002" \
--depends "001,002" \
--goal "Verify credentials with argon2, return access + refresh tokens"
tmux-ide task create "POST /api/auth/refresh with rotation" \
--milestone M2 \
--specialty backend \
--priority 2 \
--fulfills "VAL-AUTH-003" \
--depends "002" \
--goal "Rotate refresh token on every use; revoke old session row"
tmux-ide task create "Bearer-token route middleware" \
--milestone M2 \
--specialty backend \
--priority 3 \
--fulfills "VAL-AUTH-004" \
--depends "002" \
--goal "Reject expired/missing tokens with 403"M3 — Tests:
tmux-ide task create "Unit tests for auth service" \
--milestone M3 \
--specialty backend \
--priority 1 \
--fulfills "VAL-TEST-001" \
--goal ">=90% line coverage on src/lib/auth/"
tmux-ide task create "Integration: login→refresh→protected→logout" \
--milestone M3 \
--specialty backend \
--priority 2 \
--fulfills "VAL-TEST-002" \
--depends "003,004,005" \
--goal "End-to-end flow with a real Postgres test container"Verify coverage before activating:
tmux-ide validate coverageValidation Coverage Report
──────────────────────────
VAL-AUTH-001 ✓ Covered by: 002, 003
VAL-AUTH-002 ✓ Covered by: 003
VAL-AUTH-003 ✓ Covered by: 004
VAL-AUTH-004 ✓ Covered by: 002, 005
VAL-TEST-001 ✓ Covered by: 006
VAL-TEST-002 ✓ Covered by: 007
Coverage: 6/6 assertions covered (100%)If anything reads Uncovered, create more tasks before moving on — mission plan-complete will refuse to advance otherwise.
Step 7 — Activate the mission
tmux-ide mission plan-completeThis single command does four things:
- Transitions mission
status: planning → active. - Normalizes milestones so only
M1becomesactive;M2andM3stayplanning(locked). - Unlocks the orchestrator's dispatch loop on the next tick (default 5s).
- Emits a
mission.activatedevent onto the SSE stream consumed by the dashboard.
Within seconds you will see the Backend pane wake up. The orchestrator dispatched task 001 (the schema) — the highest-priority unblocked task in M1, matched against specialty: backend.
Step 8 — Watch the orchestrator work
The orchestrator runs in the daemon and ticks every orchestrator.poll_interval ms. On every tick it:
- Reads pane state from the live tmux session (idle vs working heuristic).
- Refreshes the task store and filters to the active milestone.
- Skips tasks that are
blocked(unmet--depends) or scheduled for future retry (nextRetryAt > now). - Picks the highest-priority remaining task and finds an idle pane, preferring a
specialtymatch. - Builds a prompt containing mission, milestone, goal, task, the matching skill file, and the library files (
architecture.md,learnings.md,AGENTS.md). - Sends the prompt to the pane with
tmux send-keysand records a dispatch ID.
Monitor live:
tmux-ide orchMission: Ship JWT auth status=active
Milestone: M1 Foundation status=active tasks=2/2 dispatched
Agents
Lead idle (master)
Frontend idle
Backend working → 002 JWT sign/verify helpers (4m12s)
Validator idle
Researcher idle
Shell n/a
Recent events
10:02:17 agent.dispatched 002 → Backend
10:01:55 task.completed 001 (Add users + sessions schema)
10:01:55 agent.dispatched 001 → BackendIf an agent goes silent past stall_timeout (default 5 minutes), the orchestrator emits an agent.stalled event and nudges the pane. If the agent reports back with --status review instead of done, the orchestrator treats it as a failure, schedules a retry with exponential backoff (10s → 20s → 40s …, capped at 5 min), and increments retryCount. After 5 attempts, the task drops to a hand-off file in .tasks/dispatch/retry-exhausted-<id>.md and the lead is notified.
Step 9 — Tasks complete with proof
When a backend agent finishes task 002, it reports back:
tmux-ide task done 002 \
--proof '{"tests":{"passed":18,"total":18},"notes":"jose-based signer; helpers exported from src/lib/auth/jwt.ts"}' \
--summary "Token helpers use HS256 with 15m access / 7d refresh. Refresh tokens are opaque and stored hashed (argon2id) in the sessions table."The --proof is structured JSON (tests, ci, pr, notes — all optional). The --summary is appended to .tmux-ide/library/learnings.md, so the next agent dispatched against M2 will see "Token helpers use HS256 …" in its prompt and won't re-derive that decision.
Task 001 likewise completes with proof. The orchestrator detects that all M1 tasks are done and flips the milestone:
milestone.status_changed M1 Foundation: active → validatingStep 10 — Auto-validation
milestone.status_changed → validating triggers an automatic dispatch to the Validator pane. The validator receives:
- The validation-contract file.
- The list of assertion IDs claimed by tasks in M1 (
VAL-AUTH-001,VAL-AUTH-004— others belong to M2/M3). - The skill prompt from
.tmux-ide/skills/reviewer.md. - The accumulated
learnings.md.
It runs tests, inspects code, then writes back one validate assert per assertion:
tmux-ide validate assert VAL-AUTH-001 --status passing \
--evidence "jwt.test.ts: sign() + verify() round-trip green; 18/18 in src/lib/auth/__tests__/"
tmux-ide validate assert VAL-AUTH-004 --status passing \
--evidence "expired-token test: verify() throws TokenExpiredError; middleware will translate to 403 in M2"When the validator finishes:
- Every M1 assertion is
passing→M1: validating → done,M2: planning → active, and the orchestrator immediately starts dispatching task003(POST /login). - Any assertion is
failing→ auto-remediation (next step).
Step 11 — Failed assertion → auto-remediation
Fast forward to M2. The Backend agent ships task 004 (refresh endpoint) and marks it done. The Validator runs and reports:
tmux-ide validate assert VAL-AUTH-003 --status failing \
--evidence "Refresh endpoint mints a new access token but does NOT rotate the refresh token — old refresh token still valid after use."The orchestrator's validation handler sees failing and runs the remediation path:
-
Creates a new high-priority task tagged
remediation, fulfilling the failing assertion(s):Task 008 "Fix VAL-AUTH-003: rotate refresh token on use" milestone=M2 specialty=backend priority=1 fulfills=VAL-AUTH-003 tags=[remediation] -
Emits a
remediationevent into the event log. -
Sets the milestone back to
activeso the new task is eligible for dispatch on the next tick.
On the next tick, the Backend pane picks up task 008 and works the fix. Once it's done, the milestone flips back to validating; the Validator re-runs only the previously failing assertions (VAL-AUTH-003), confirms passing, and M2 advances to done. M3 unlocks.
You did nothing. The lead pane was idle through the whole loop.
Step 12 — Mission complete + auto PR
When the last assertion in M3 passes:
M3: validating → done.- All milestones are
done→mission.status: active → complete. - If
ghis available onPATHand the project is a git repo, the orchestrator callscreateMissionPr(...). It pushes the current branch (if needed) and runsgh pr createwith a body composed from the mission description, every milestone, and a summary of each task's proof. - The PR URL is written to
.tasks/dispatch/mission-complete.mdand the lead pane gets a nudge:Mission complete: "Ship JWT auth". Run: tmux-ide dispatch mission-complete. - A
mission_completeevent lands on the SSE stream, and the dashboard's Mission view renders the completion banner with the PR link.
Inspect the final state:
tmux-ide mission status
tmux-ide validate report
tmux-ide metrics historyMission: Ship JWT auth status=complete
Milestones: M1 done M2 done M3 done
Validation: 6/6 passing
PR: https://github.com/acme/api/pull/482
Wall time: 1h 47m (auto-dispatch on)
Agent hours: 3h 21m across Backend + ValidatorOpen the PR, review the diff, merge. The mission's audit trail — every dispatch, every retry, every assertion transition, the remediation event — lives in .tasks/events.jsonl and is queryable via tmux-ide orch --json.
Where to watch from
The dashboard at http://localhost:6061 mirrors the same state the CLI exposes, with three views you'll keep open during a mission:
Mission view
Route: /project/<name> (the default landing) — renders MissionControlView, the same surface used for both Mission and Mission Control tabs.
Use it for:
- The current mission title, description, and
planning | active | completestatus. - Per-milestone progress bars with task counts (
5/7 done). - Live validation summary: how many assertions are
passing,failing,blocked,pending. - The agent grid — each pane's role, specialty, and current task title; idle panes are dimmed.
- An event feed of
agent.dispatched,task.completed,milestone.status_changed,remediation, andmission_completeevents, updated over SSE.
Callout: when a milestone flips to validating, the Validator card lights up and you can watch its prompt land in real time without opening the tmux window.
Tasks view
Mounted via mountTasksView from v2-solid-widgets. Switch to it via the project sidebar (Tasks icon) or by adding a type: tasks widget pane to ide.yml.
Use it for:
- The full task list, filterable by milestone (
M1,M2,M3) and status (todo,in-progress,review,done). - One-click drill-down into each task to see priority, dependencies,
--fulfillsassertion IDs, proof JSON, and the agent that worked it. - Spotting blocked tasks — anything with unmet
--dependsis rendered with a chain icon and lists the blocking task IDs. - Manual overrides: claim, reassign, or mark
donefrom the UI if you need to intervene.
Callout: remediation tasks created by the orchestrator are tagged remediation and rendered with a red badge so you can audit the validator's history at a glance.
Chat view
Route: /project/<name> then the Chat tab. Each Claude pane has a chat stream backed by the daemon's event bus; the Chat view multiplexes them with a per-pane sidebar.
Use it for:
- The Lead chat — the planning and supervision surface. Add ad-hoc questions ("why did the validator mark VAL-AUTH-003 failing?") and the lead can read events, files, and the
.tasksdirectory to answer without disturbing the workers. - Per-teammate streams — read what the Backend agent is currently doing, including its full prompt (mission + milestone + skill + library + task) and its responses.
- The Validator stream — see the exact
validate assertcalls before they hit the CLI and confirm the evidence text is meaningful.
Callout: streams are virtualized (@tanstack/solid-virtual) so long-running missions with thousands of messages stay smooth. Use Cmd+P to quickly jump between panes without leaving the chat surface.
Together, Mission tells you where the mission is, Tasks tells you what each agent is doing and why, and Chat tells you what they are actually saying. The CLI (tmux-ide orch, tmux-ide mission status, tmux-ide validate report) gives you the same data in any shell that has the project cwd, including the Shell pane inside the session itself.