All use cases
USE CASE · PULSE IN PRODUCTION

Two Agents. Independent Review.

Pulse enforces structural role separation between the agent that builds and the agent that validates every task — the board below is that actual board, not a mockup.

Board af285ee4-9a28-4369-bc9a-ac5ab7c75c7b · Ideation v6 · Refinement v4 · Spec v20 approved · View the repo ↗
  • 0 Sprint tasks completed
  • 0 Pipeline stage gates passed
  • 0 Matching test scenarios verified
  • 0 Self-approved cards
Okto Pulse / pulse-brownfield-feature-demo
Loading board snapshot…

Read-only snapshot — no credentials, no live connection back to the original board.

01 · PROBLEM

Agentic pipelines are confident. That’s the problem.

Three failure modes this workflow is built to close, not just describe.

Status Can Drift From Reality

A card can be marked done, a sprint can close, tests can be marked passed — while the underlying work was never actually finished. Nothing about a status label guarantees it’s true.

Self-Review Isn’t Review

If the same agent that writes a task is also the one that approves it, “approved” just means the agent still agrees with itself.

A Rule Nobody Enforces Is a Suggestion

A guideline that only warns doesn’t stop bad work from shipping — it just leaves a note next to it on the way out.

02 · ARCHITECTURE

One board. A strict lineage.

Every stage on this board only opens once the one before it is actually in a state that allows it — not merely claimed to be.

Implementation and validation run task by task, not stage by stage — a submission that comes back with changes requested doesn’t move forward until it’s genuinely cleared.

How one task actually moves through the board
Spec Writer Ideation → Refinement

An idea refined into a concrete shape before any task exists.

Gate Spec

Must reach approved before a sprint opens.

Sprint & Tasks

Six tasks, dependency-ordered.

Builder Foundation task

No dependency — everything else waits on it.

Builder · parallel Task A & Task B

Both: started → in_progress → validation.

Validator Validator gate

Confidence, completeness, drift — checked independently.

↺ Falls short → back to Builder
Validator Sprint close-out

Only once every task and test has genuinely cleared.

Spec marked complete

Never before the sprint above it has closed.

03 · HOW IT WORKS

Six steps, one shared board.

Grounded in this board’s real activity, illustrating the Sprint/Task mechanics this particular run hadn’t reached yet.

  1. STEP01

    Ground it in what already exists

    The team records what the codebase already does as a Pulse Decision, so both agents start from the same ground truth.

    Decision recorded before the Sprint opens
  2. STEP02

    Foundation task clears first

    The sprint’s first task has no dependencies — everything else waits for it to clear review.

    okto_pulse_get_task_context
  3. STEP03

    Independent tasks run in parallel

    Once the foundation task clears, two independent tasks open and move through started → in_progress → validation.

    okto_pulse_move_card (gate: builder != validator)
  4. STEP04

    Independent review checks

    The Validator checks confidence, completeness, and drift from spec — short on any one, and it goes back with a specific reason.

    okto_pulse_submit_task_validation
  5. STEP05

    Verify test execution evidence

    Three test tasks must actually run their scenario — a result marked passed isn’t accepted without evidence.

    okto_pulse_submit_task_validation
  6. STEP06

    Close-out sprint & spec

    Once all 6 tasks are approved, the Validator closes the sprint — the spec is marked complete only after that.

    okto_pulse_submit_sprint_evaluation
04 · REFERENCE BUILD

Two real agents. Separate identities.

Two separate MCP connections, each with its own credentials — not one identity switching roles — working the same board end to end.

Builder
Executor
  • Implements each task end to end against the real codebase
  • Submits a completeness estimate and any deviation from spec
  • Moves cards: started → in_progress → validation
  • Cannot submit task validation or self-approve cards
Validator
Reviewer
  • Never implements or modifies code
  • Reviews every submission independently for confidence, completeness, and drift
  • Submits validated test evidence to the board
  • Moves cards: validation → done

Builder runs on the Executor preset, Validator on the Validator preset — both enforced structurally on the board, not by instruction either agent could ignore.

05 · QUICKSTART

Install it. Record the first Decision.

The real install commands, plus the snippet that recorded a baseline convention as a Decision before any new work opened.

  1. 01

    Install the CLI from PyPI

    > pip install okto-pulse
  2. 02

    Initialise local repository data

    > okto-pulse init
  3. 03

    Seed the demo board

    > cp data/pulse.db ~/.okto-pulse/data/pulse.db
    Loads pulse-brownfield-feature-demo with Ideation, Refinement, and an approved Spec already recorded.
  4. 04

    Start Web UI & MCP server

    > okto-pulse serve
    Web UI on port :8100 · MCP server on port :8101/mcp · connect two separate agent identities — Executor and Validator — each with its own credentials.
  5. 05

    Wire up a coding agent

    > okto-pulse init --agents
    Generates a project-local .mcp.json so Claude Code, Claude Desktop, Cursor, or Cline can discover the board and query it directly.
.mcp.json — generated by step 05
{
  "mcpServers": {
    // Builder's identity — can implement and move cards,
    // cannot submit a validation or move a card to done.
    "okto-pulse-executor": {
      "url": "http://localhost:8101/mcp",
      "headers": { "Authorization": "Bearer <executor-token>" }
    },
    // Validator's identity — a separate MCP connection,
    // separate credentials, not the same agent switching roles.
    "okto-pulse-validator": {
      "url": "http://localhost:8101/mcp",
      "headers": { "Authorization": "Bearer <validator-token>" }
    }
  }
}

Both agents work through the same MCP surface — Pulse exposes 312 core MCP tools over okto-pulse serve. A sample of what this workflow actually calls:

ToolUsed for
get_task_contextBuilder pulls a task’s requirements and linked spec context before implementing
move_cardMoving a task through its status lifecycle
submit_task_validationValidator submits a confidence / completeness / drift assessment
get_traceability_reportTracing shipped code back through its task, spec, and originating Decision
get_board_guidelinesChecking what governance rules are actually active on the board
submit_sprint_evaluationClosing out the sprint once every task clears
06 · WHY IT MATTERS

Delivery that actually holds.

Traceable Decisions

Pre-existing conventions are recorded as Decisions before new work starts, aligning both agents on codebase state.

Enforced Role Separation

The agent that builds a task is not the agent that can validate it — enforced by identity on the board.

Enforced Approval Gates

Guideline gates require verified test evidence to be submitted, preventing cards from moving to done without proof.

Full Traceability

Shipped features trace directly back from implementation commits to tasks, test results, and the original spec.

Build fast. Stay in control.

Start locally if you’re building. Request a demo if you’re scaling.