Work items that routethemselves.
Tasks are records of work in progress. They pull status from commits, docs, and meetings. They find the right owner. They report themselves. A senior engineering leader can run weekly reviews without writing a status update.
Five things, actually done.
Most task tools store text and dates. Tasks stores the live state of work. Every field updates from a real signal in your stack, not a human typing into a form.
- 01Reads status from your commits
Branch open, PR ready for review, tests passing, deploy live. State changes the moment your repo does. No standup needed.
- 02Routes to the right owner
Capacity model, skill graph, ownership history. A new task lands with a suggested owner on intake. Override anytime.
- 03Pulls context from meetings and docs
If a task was opened in a meeting, the relevant 90 seconds of transcript is attached. If a doc mentions it, the doc is linked.
- 04Auto-writes the weekly review
Friday at 4pm local time, a digest lands in the channel: shipped, blocked, slipped, with reasons drawn from the work graph.
- 05Closes itself when work is done
If the linked PR merges and the linked deploy succeeds, the task closes. If a doc says "shipped", it confirms with the author.
Three steps, one graph.
Every task is a node in the work graph. Edges connect it to people, repos, docs, meetings, customers, and deals. State flows along those edges.
Capture and route
A task lands from Slack, email, or a meeting. The router scores owners against capacity, skill, and history. Owner assigned on intake.
Pull live signal
The task subscribes to its sources. PR state, doc revisions, meeting mentions, deploy events. Fields refresh on every event, not on a cron.
Self-report and close
Weekly digest writes itself from real events, not a survey. Tasks close automatically when their PR merges and deploys go green.
The full surface area.
Tasks ships as part of the wrxstack platform. Same identity. Same permissions. Same audit trail. The features below are live in every workspace today.
Capacity-aware routing
Each owner has a daily focus budget. The router never overshoots without explicit override.
Five views, one source
List, kanban, timeline, calendar, and graph. Same task, same edits, no syncing.
Auto-standup
9am local time. Each owner gets their next 3 highest-leverage items. No more triage.
Per-task permissions
Inherit from project or override. Field-level masking for cross-org work.
Time zone math
Due dates respect each owner's working window. Cross-region handoffs are tagged.
Linked-everywhere search
Find any task by content from any related artifact, including a 6-week-old Slack thread.
SLA tracking
Custom clocks per priority, paused during PTO, escalated on breach to the right channel.
Bulk operations
Reroute 400 tickets in one keystroke, with reason logged to audit.
Export anywhere
CSV, JSON, SQL view, or a live read replica in your warehouse. No screen-scraping.
Wired to every surface.
Tasks is the spine of the platform. It reads from and writes to the other 11 modules through the shared work graph.
Eight modules write to the same task
A bug filed in Inbox, a roadmap entry in Projects, an action item from Meetings, a follow-up from CRM. They all land as a single normalized task with full provenance.
One call, the whole graph.
The Tasks API returns the work item plus its full edge set. No N+1 chasing. SDKs for Python, TypeScript, Go, Ruby, Java.
// Create a task, route it, and subscribe to live state. import { Wrx } from "@wrxstack/sdk"; const wrx = new Wrx({ token: process.env.WRX_TOKEN }); const task = await wrx.tasks.create({ title: "Add idempotency key to billing webhook", priority: "P2", source: { type: "slack", message_ts: "1715271934.000700" }, links: [{ kind: "repo", ref: "wrx/billing#1284" }], route: { strategy: "capacity_then_skill", sla: "P2_24h" } }); // task.owner is filled in on intake; route_score is on the object. console.log(task.owner.email, task.route_score); // mia@acme.com 0.94 // Stream every state change downstream of this task. for await (const ev of wrx.tasks.stream(task.id)) { if (ev.kind === "status" && ev.to === "shipped") { await wrx.docs.write({ doc: "weekly-eng", append: `Shipped: ${task.title} (deploy)` }); } }
Same surface in Python: wrx.tasks.create(...). REST and GraphQL are also live. Read the full API reference →
Tasks vs. Linear.
Linear is a beautiful tracker. It assumes a human keeps the state honest. wrxstack Tasks runs on the assumption that humans will not.
wrxstack Tasks vs. Linear Side by side
| Capability | Linear | wrxstack Tasks |
|---|---|---|
| Auto-routing on intake | Manual triage | Capacity + skill, on intake |
| State source | Assignee updates | Commits, deploys, docs, meetings |
| Auto-close on deploy | Manual close | Closes on green deploy |
| Weekly digest | Cron pulls "active" issues | Grounded in 7-day event log |
| Cross-module edges | URLs in description | First-class graph edges |
| Trains on your data | Policy varies | Never, per model-provider terms |
| Audit trail granularity | Event log | Field-level, exportable |
Common questions.
Six things engineering leaders ask in the first 20 minutes of a Tasks demo.
How does the router avoid loading the same engineer every time?
Capacity is a daily focus budget per owner, set in their profile. The router penalizes anyone over budget. Skill matches break ties. Ownership history is a tiebreaker, not a primary signal, so a senior engineer who happens to know the codebase will not become a single point of failure.
What if our team uses Jira or Linear today and cannot migrate yet?
Tasks runs in dual-write mode. We mirror state to and from Jira (Cloud and Server) and Linear. Run dual-write for as long as you need, then cut over when you are ready. The mirror is bidirectional, with conflict resolution rules you set up front.
Can a task be private to one team while still being part of the work graph?
Yes. Per-task permissions inherit from the project, then can be overridden field by field. A field can be masked rather than hidden, so cross-team dependencies stay visible but sensitive content stays inside the owning team.
How fast does routing actually run?
The router scores owners against capacity, skill, and history inline on task intake. A suggested owner is on the object before the create call returns, so intake never waits on a manual triage step.
What signals close a task automatically?
By default: linked PR merged, plus linked deploy green for 30 minutes, plus no rollback within 60 minutes. You can add or remove signals per project.
Does Tasks work without the rest of wrxstack?
It does. You can adopt Tasks alone and get the router, the views, the API, and the audit trail. The connected graph features (auto-close on deploy, cross-module edges, weekly digest) require at least two other modules.
Pairs well with.
Tasks gets sharper when the rest of the graph is live. Three modules that compound its value.
Who this is not for.
Tasks routes engineering work on a shared graph. If you run a large program office that needs portfolio-level resource planning, capitalized-cost reporting, and hundreds of custom workflow states, a heavyweight tracker like Jira will fit your process better. Tasks is built for teams that want routing and auto-close, not a configuration project.
Try Tasks. Stop writing status updates.
Free to start, no credit card. All 16 modules. SSO included. Ship your first auto-closed task the same afternoon.