Kanban & Project Planning

Turn your Aexol specification into an executable project plan. The Kanban system generates a structured task backlog from your spec — each task targeting a specific entity, workflow, visitor capability, or infrastructure concern — then lets your coding agent execute those tasks one by one.


Overview

The Kanban board lives at /studio/kanban?projectId=your-project. It has four columns:

ColumnMeaning
BACKLOGTasks waiting to be prioritized
TODOReady to work — ordered by priority
IN PROGRESSAgent is currently working on this task
DONECompleted — completedAt timestamp recorded

Each task carries:

  • Title — what needs to be done
  • Description — acceptance criteria, context, technical notes
  • Priority (0–100) — higher = more urgent
  • Tags — comma-separated: auth, api, frontend, testing, devops
  • Assignee — team member responsible

Generating the Project Plan

  1. Open your project in Studio
  2. Navigate to the Generate panel
  3. Select "Project Plan" from the artifact type dropdown
  4. Choose a model (Claude 3.5 Sonnet recommended)
  5. Click Generate

The AI reads your .aexol specification and produces a structured task list.

What the AI analyzes from your spec

Spec elementTasks generated
type definitionsOne task per entity (CRUD, validation, schema)
visitor capabilitiesOne task per permission boundary
workflow stepsOne task per workflow stage
enum + union typesValidation and serialization tasks
Implicit infrastructureAuth, error handling, logging, tests

Priority bands

The AI assigns priorities automatically:

RangeCategoryExamples
90–100Security / AuthLogin, JWT middleware, RBAC
75–89Core EntitiesUser CRUD, Order model, Payment schema
55–74Supporting FeaturesEmail notifications, file upload
35–54UX / PolishForm validation, loading states, error pages
10–34Nice-to-havesDark mode, analytics, admin dashboard

Generation options

When calling via the backend API or Remote MCP, you can configure:

OptionTypeDefaultDescription
granularityepic / story / tasktaskLevel of detail per card
clearExistingbooleanfalseDelete existing backlog before generating
maxTasksnumber30Maximum tasks to generate
defaultColumnBACKLOG / TODOBACKLOGWhere new tasks land
Remote MCP
curl -X POST "https://api.aexol.ai/mcp" \
  -H "Authorization: Bearer sk-aexol-team-..." \
  -d '{
    "jsonrpc": "2.0", "id": 1, "method": "tools/call",
    "params": {
      "name": "remote_start_inference",
      "arguments": {
  "spec": "...",
  "commands": [
    { 
      "artifactType": "PROJECT_PLAN",
      "options": {
        "granularity": "task",
        "maxTasks": 25,
        "defaultColumn": "BACKLOG"
      }
    }
  ]
}
    }
  }'

Managing the Board

In Studio

Drag cards between columns. Click a card to see the full description, edit metadata, or delete.

Via API

All Kanban operations are available through the GraphQL API:

Create a task:

mutation {
  createKanbanTask(input: {
    projectId: "proj_abc",
    title: "Implement JWT auth middleware",
    description: "Add middleware that validates JWT tokens on protected routes",
    priority: 95,
    tags: "auth,security,api"
  }) {
    id
    title
    column
  }
}

Move a task:

mutation {
  moveKanbanTask(input: {
    taskId: "task_xyz",
    targetColumn: "DONE",
    targetSortOrder: 0
  }) {
    id
    column
    completedAt
  }
}

List tasks:

query {
  kanbanTasks(projectId: "proj_abc") {
    id
    column
    title
    priority
    tags
  }
}

Agent-Driven Execution

Once your board is populated, the Spectral coding agent can execute tasks autonomously. See the Agent Kanban documentation for the full workflow.

Quick preview of the execution loop:

kanban_next  →  picks highest-priority TODO → IN PROGRESS
    │
    ▼
Agent reads task description, implements (read/write/edit/bash)
    │
    ▼
kanban_move  →  DONE
    │
    ▼
kanban_next  →  next task

Re-planning

When your .aexol specification changes, re-generate the Project Plan. The AI performs a diff-based update:

  • New spec elements → new tasks added to BACKLOG
  • Removed spec elements → existing tasks marked with [OBSOLETE] tag
  • Changed spec elements → task descriptions updated, priority recalculated
  • Existing tasks not in the spec → left untouched (manual tasks)

Enable clearExisting: true if you prefer a fresh board on every generation.


Architecture

The Kanban system has two main components:

  1. Backend — PostgreSQL-backed CRUD via GraphQL mutations + SSE real-time updates. Effector dirty-tracking detects changes and pushes board state to all connected browser tabs.

  2. Agent Bridge — A built-in pi extension (kanban-bridge.ts) that registers 7 tools the coding agent uses to interact with the board. The bridge reads authentication from ~/.spectral/config.json, resolves the project ID from the Studio binding (.aexol/aexol.jsonc), and makes direct GraphQL calls to the backend.

Studio UI ←── GraphQL ──→ Backend (PostgreSQL + SSE)
                                ↑
                                │  GraphQL (Bearer auth)
                                │
                   Kanban Bridge Extension
                   (cli-node/src/extensions/kanban-bridge.ts)
                                ↑
                                │  pi.registerTool()
                                │
                   Spectral Coding Agent
                   (read/write/edit/bash + kanban_* tools)