Every software idea that enters Pulse travels through six stages before code ships. The stages are not advisory — they are enforced status transitions in the service layer. An agent cannot skip a stage by moving a card directly; it must call the MCP tools that correspond to each transition, and each transition checks its gate before proceeding. This page explains what happens at each stage, what the enforced thresholds are, and what gets written to the Knowledge Graph along the way.Documentation Index
Fetch the complete documentation index at: https://docs.oktolabs.ai/llms.txt
Use this file to discover all available pages before exploring further.
The 6-stage pipeline
Each arrow represents a Pulse MCP tool call. The pipeline is linear by default — though multiple ideations, refinements, and sprints can exist on a board simultaneously, each one follows its own path through the stages. Status enums (source:okto-pulse-core/src/okto_pulse/core/models/db.py):
| Stage | Statuses |
|---|---|
| Ideation | draft → evaluating → refined → done |
| Refinement | draft → in_progress → review → approved → done |
| Spec | draft → review → approved → validated → in_progress → done |
| Sprint | draft → active → review → closed |
| Card | not_started → started → in_progress ⇄ on_hold → validation → done |
Stage 1: Ideation
What Pulse does at the Ideation stage
What Pulse does at the Ideation stage
Ideation is the intake stage. You give Pulse a raw request — one sentence or a paragraph — and Pulse surfaces every material gap before anything gets built.The core problem ideation solves: vague requests produce vague specs. Instead of prompting you to write a spec up-front, Pulse asks questions about the gaps it finds in the raw text.What an agent does here:
- Create the ideation:
okto_pulse_create_ideation - Evaluate scope — three axes, each justified in writing:
okto_pulse_evaluate_ideation - Ask ambiguity-killer questions (text or choice):
okto_pulse_ask_ideation_question,okto_pulse_ask_ideation_choice_question - Record answers:
okto_pulse_answer_ideation_question - Advance when ready:
okto_pulse_move_ideation(draft → evaluating → refined)
okto_pulse_add_ideation_knowledge) is available to downstream stages but is not yet promoted to the graph.Stage 2: Refinement
What Pulse does at the Refinement stage
What Pulse does at the Refinement stage
Refinement is investigation, not paraphrasing. Its job is to read the actual codebase, query the KG for prior decisions, and produce a concrete evidence-backed description of current behavior, constraints, and dependencies.What distinguishes refinement from a chat conversation: the evidence must be citable. Good refinement output includes source file references (
path:line), KG query results, runtime logs, and stakeholder answers. An agent that produces vague findings has not completed refinement.What an agent does here:- Create a refinement linked to the ideation:
okto_pulse_create_refinement - Query the KG for prior decisions before deciding anything:
okto_pulse_kg_find_similar_decisions,okto_pulse_kg_query_natural - Update findings, evidence, and constraints:
okto_pulse_update_refinement - Advance when evidence is complete:
okto_pulse_move_refinement(draft → in_progress → review → approved) - Derive a spec from the approved refinement:
okto_pulse_derive_spec_from_refinement
approved only when evidence, findings, and constraints are recorded. The derived spec is pre-populated from refinement output — not written from scratch.What gets written to the KG: Refinement knowledge entries attached via okto_pulse_add_refinement_knowledge become candidates for the consolidation queue when the downstream spec is consolidated.Stage 3: Spec
What Pulse does at the Spec stage
What Pulse does at the Spec stage
The spec is the implementation contract. It answers “what must be true when this ships?” with enough precision that a different agent (or a different session of the same agent) could implement it without guessing.A strong spec includes:
- Problem statement
- Acceptance criteria (each linked to at least one test scenario)
- Functional requirements → business rule linkage
- Technical requirements
- Test scenarios with AC coverage
- Business rules → card linkage
- API contracts
- Architecture decisions
- Non-goals (explicit scope exclusion)
- Spec is created automatically via
okto_pulse_derive_spec_from_ideationorokto_pulse_derive_spec_from_refinement - Add test scenarios with AC linkage:
okto_pulse_add_test_scenario - Add business rules:
okto_pulse_add_business_rule - Record design decisions with alternatives:
okto_pulse_add_decision - Add API contracts:
okto_pulse_add_api_contract - Submit evaluation (score + narrative):
okto_pulse_submit_spec_evaluation - Submit validation (completeness/assertiveness/ambiguity):
okto_pulse_submit_spec_validation - Advance:
okto_pulse_move_spec
okto_pulse_submit_spec_evaluation requires a qualitative score and written narrative. The gate for validated → in_progress will not pass if the evaluation score is below threshold.Spec validation gate: okto_pulse_submit_spec_validation requires three threshold checks — completeness, assertiveness, and ambiguity scores with written evidence. Success locks the spec content. An agent cannot modify a validated spec without explicitly unlocking it via approved_to_draft or validated_to_draft.Spec → done gate (4 coverage checks + 2 structural checks):- 100% acceptance criteria → test scenario coverage
- FR → BR linkage complete
- BR → Card linkage complete
- AC → Scenario linkage complete
- Configurable decision coverage threshold met
- No non-bug tasks still open
Decision, Criterion, Constraint, Requirement, APIContract, and TestScenario nodes, plus belongs_to, derives_from, tests, and implements edges. These nodes persist in the per-board Kùzu graph (~/.okto-pulse/boards/{id}/graph.lbug) and survive the next session.Stage 4: Sprint
What Pulse does at the Sprint stage
What Pulse does at the Sprint stage
A sprint slices a validated spec into reviewable work. Sprints define the scope, objective, and expected outcome for a batch of cards. They are not a time-box — they are a logical delivery slice.What an agent does here:
- Get sprint suggestions from the spec:
okto_pulse_suggest_sprints - Create the sprint with objective and expected outcome:
okto_pulse_create_sprint - Assign cards to the sprint:
okto_pulse_assign_tasks_to_sprint - Resolve sprint Q&A before execution:
okto_pulse_ask_sprint_question,okto_pulse_answer_sprint_question - Submit sprint evaluation before activating:
okto_pulse_submit_sprint_evaluation - Advance:
okto_pulse_move_sprint(draft → active)
okto_pulse_submit_sprint_evaluation is the quality gate for review → closed. A sprint cannot close without a recorded evaluation. This prevents sprints from being silently abandoned.What gets written to the KG: Sprint consolidation writes Entity and Requirement nodes representing the sprint scope, plus belongs_to edges linking sprint cards back to spec decisions.Stage 5: Cards (Tasks and Bugs)
What Pulse does at the Card stage
What Pulse does at the Card stage
Cards are execution units. Each card must be self-contained — an implementer agent should be able to work from a card alone without reading the spec from scratch.Card types:
normal, test, bugWhat an agent does before starting a card:- Get the full context bundle:
okto_pulse_get_task_context— returns card + spec + business rules + test scenarios + decisions + KG context in one call - Copy needed artifacts:
okto_pulse_copy_knowledge_to_card,okto_pulse_copy_mockups_to_card,okto_pulse_copy_architecture_to_card - Advance:
okto_pulse_move_card(not_started → started → in_progress)
validation (not directly to done). To move from validation → done, the closing agent must provide:conclusion— written summary of what was donecompleteness(0–100) — with written justification (e.g., “90 — pagination implemented but not yet perf-tested”)drift(0–100) — deviation from the original spec, with justification (e.g., “10 — switched from JWT to session tokens per spec amendment”)- If the Task Validation Gate is enabled: an independent reviewer must call
okto_pulse_submit_task_validation— auto-fail on threshold violations even if the reviewer recommends approval
okto_pulse_update_test_scenario_status requires structured evidence: test_file_path, test_function, last_run_at, and output_snippet or test_run_id. Marking a test “passed” without evidence is rejected. Sprint close re-validates this evidence on every passed scenario.Bug card gate (test-first):- A new failing test scenario must exist before the bug card can move to
in_progress - A linked test card must exist
not_started → started → in_progress ⇄ on_hold → validation → doneWhat gets written to the KG: Completed cards contribute Learning nodes (lessons from implementation) and Bug nodes (linked via validates edges to the test scenarios that caught them). The learning_from_bugs query (okto_pulse_kg_get_learning_from_bugs) surfaces these across future sessions.Stage 6: Validation
What Pulse does at the Validation stage
What Pulse does at the Validation stage
Validation is the independent quality checkpoint. It is separated from implementation by design — the agent that built the card cannot be the same agent that validates it (enforced by permission presets).Permission presets (source:
What a validator agent does:
okto-pulse-core/src/okto_pulse/core/models/db.py:PermissionPreset):| Preset | Gate permissions |
|---|---|
| Executor | Can move cards not_started → validation. Cannot submit validation gates. |
| Validator | Can submit spec_validation, spec_evaluation, sprint_evaluation, task_validation. Can move cards validation → done. |
| QA | Can write test scenarios. Cannot submit any gate. |
| Spec Writer | Owns ideation/refinement/spec content. Cannot move specs past approved. |
- Read the card with context:
okto_pulse_get_task_validation - Verify the implementation evidence (logs, test output, screenshots)
- Submit with structured evidence:
okto_pulse_submit_task_validation
okto_pulse_kg_commit_consolidation writes the durable decision and learning nodes for this card into the board’s Kùzu graph.Knowledge Graph integration
Every stage produces artifacts that feed the Knowledge Graph. The KG is not a side effect — it is the durable memory layer that makes the next project faster. 11 node types written across the pipeline:| Node type | Typically written at |
|---|---|
Decision | Spec (design decisions), Ideation (choice question answers) |
Criterion | Spec (acceptance criteria, test scenarios) |
Constraint | Spec, Refinement (technical constraints) |
Assumption | Refinement (documented assumptions) |
Requirement | Spec (FRs, TRs), Sprint (scope) |
Entity | Spec (named entities), Sprint |
APIContract | Spec (API contracts) |
TestScenario | Spec (test scenarios) |
Bug | Card stage (bug cards) |
Learning | Card stage (post-implementation) |
Alternative | Spec (alternatives considered in decisions) |
supersedes, contradicts, derives_from, relates_to, mentions, depends_on, violates, implements, tests, validates.
What an agent can query mid-task:
~/.okto-pulse/boards/{id}/graph.lbug. They are deterministic (no LLM) and survive across sessions. The KG uses HNSW vector indexes on five node types for semantic search.
Why this differs from a kanban
A kanban answers “what is the current status of work?” Pulse answers “did the work satisfy the original intent?” — and refuses to close work that cannot prove it did. The structural differences:| Kanban | Pulse |
|---|---|
| Columns represent status only | Status transitions enforce coverage gates |
| Cards are created directly | Cards derive from validated specs |
| Work is done when the developer says so | Work requires structured conclusion + completeness + drift evidence |
| Context lives in chat history | Context lives in KG nodes that outlast sessions |
| Moving a card requires one click | Moving a card from validation → done requires a validator agent with evidence |
| No memory of past decisions | Prior decisions surface before new ones are made |
okto_pulse_move_card and the service layer checks every gate condition before the status changes.
Where to go next
Quickstart
Walk through the full pipeline with a real example in 5 minutes.
Knowledge Graph
How the KG stores and serves decision history across sessions.
MCP Setup
Connect your agent to the 198 MCP tools that drive this pipeline.
Ideation
Deep-dive into Stage 1 — ambiguity reduction and scope assessment.
Spec
Deep-dive into Stage 3 — writing implementation contracts.
Validation
Deep-dive into Stage 6 — independent quality gates.