Topolog

The Scheduler

The scheduler is pure deterministic TypeScript. No AI, no nondeterminism. It runs in milliseconds and never hallucinates.

Inputs

  • The dependency graph (nodes + edges + group registry)
  • Each Plan’s daily-hours commitment + deadline
  • The set of tasks already marked done
  • (Optional) per-task predicted hours from the Bayesian layer

Federated meta-scheduler

Every Plan contributes its own graph and its own daily quota (“Career gets 3h/day, Music gets 1h/day”). The meta-scheduler unions them into a single graph, topologically sorts the union, then bin-packs each task into its Plan’s daily quota; quotas don’t compete. The result is one calendar across every Plan you’re running.

Cross-Plan dependencies

Edges between nodes in different Plans work natively. The union topo-sort respects them, so a task in Buy a housecan wait on a task in Career finishing first. If a cross-Plan edge introduces a cycle, the scheduler returns a cycle_detected state and the UI surfaces it rather than silently producing a wrong schedule.

How it works (the short version)

The scheduler unions every active Plan’s graph into one, respects ordering edges both within and across Plans, and packs tasks into each Plan’s daily quota in dependency order. Plans don’t compete for each other’s time; the Career quota and the Music quota run side by side. The output is one calendar that honours every dependency you’ve declared, with per-Plan and portfolio-level done-by bounds.

Uncertainty bounds

Each Plan’s done-by date comes with an uncertainty band — the wider the band, the less confident the estimate. Topolog calibrates that band against published research on human time-estimation accuracy (most people are systematically over-confident on sub-day tasks). The Bayesian per-area learning layer narrows the band for power users as observations accumulate.

Critical path

Topolog runs an uncertainty-aware critical path so you see not just the headline bottleneck chain, but the near-critical tasks — the ones with a meaningful chance of overtaking the current critical path if they slip.

Bayesian learning

Every completed task produces an observation. Topolog maintains a per-area and per-bucket learning layer that adjusts future estimates as observations accumulate. Your original numbers are never mutated; the scheduler keeps its own silent prediction layer that gets sharper over time.

Pareto trade-offs

When a plan has continuous decisions (a budget knob, a quality knob, a scope knob), the Pareto tab shows the trade-off frontier. Each point on the chart is a feasible plan configuration; the frontier is the set of plans that are non-dominated, i.e. no other point is strictly better on both axes. The scheduler doesn’t pick a point for you. The Pareto tab simply tells you which combinations exist so you can choose between “cheaper, slower” and “faster, dearer” consciously.

Pareto is the right tool when the choice is genuinely continuous. For discrete choices (which agent does this task, which gate branch the outcome takes) the inspector pane is the right surface: it shows the per-option deltas without constructing a frontier.

Ready to plan in graphs?

7-day free trial · 250 credits · No card required

Get Started →