Skip to main content
Version: latest

topics

A topic is an optional label you attach to a task when registering it. Topics group related tasks and act as a scheduling fence: kasmos enforces that only one task per topic is actively implementing at any time.

why topics exist

Multiple tasks in the same codebase area can create merge conflicts or race conditions if they run concurrently. Topics give you a lightweight way to express "these tasks touch the same subsystem" without needing to express detailed file-level dependencies.

the collision gate

When you try to start a coder on a task, kasmos checks whether any other task in the same topic is already in the implementing status. If one is found, kasmos shows a warning overlay naming the conflicting task. You can:

  • cancel and wait for the existing task to finish
  • confirm to proceed anyway (you take responsibility for merge conflicts)

The gate only applies to the implementing status. Planning, reviewing, and done tasks in the same topic do not block a new coder from starting.

tasks without a topic

Tasks with no topic assigned bypass the gate entirely. This is the default for tasks created without an explicit topic.

setting a topic

Topics are set when registering a task or updated later via the task store. In the TUI you can assign a topic from the task context menu. With the CLI:

kas task register my-feature.md
# then in the TUI: select task → context menu → assign topic

topic groups

The TUI sidebar shows topics as collapsible groups. Expanding a topic shows all tasks assigned to it, their statuses, and any running agents.