Specs
The spec is the implementation contract — the artifact that answers “what must be true when this ships?” with enough precision that an agent can implement it without guessing. Pulse exposes 24 of its 216 MCP tools for spec authoring:- Lifecycle (8) — create, get, get-context, list, update, move, delete, link-card.
- Test scenarios (2) — add and list.
- Business rules (4) — add, update, remove, list.
- Decisions (5) — add, update, remove, link-to-task, migrate.
- API contracts (4) — add, update, remove, list.
- Traceability links (4) —
link_task_to_scenario,link_task_to_rule,link_task_to_contract,link_task_to_tr. - Spec history (1) — paginated edit log.
validated → in_progress) and spec validation (threshold checks, approved → validated) — live on the Validation gates page. Q&A on specs lives on Comments & questions; spec knowledge entries live on Knowledge & attachments.
Source-of-truth citations: okto-pulse-feature-inventory.md:333–352 (spec lifecycle + traceability), :411–428 (business rules, decisions, API contracts), :967–981 (status enums), :982–1021 (governance gates).
Why specs are the richest artifact in the pipeline
The spec is where most of the Knowledge Graph value gets created. Everyadd_decision call with rationale and alternatives becomes a queryable Decision node future agents can retrieve via kg_find_similar_decisions before making the same call again. Every add_business_rule becomes a Constraint node tied back to the spec; every add_test_scenario becomes a TestScenario node linked to its acceptance criterion.
A strong spec includes, at minimum:
- Title + description
- Functional requirements
- Technical requirements
- Acceptance criteria, each linked to at least one test scenario
- Business rules, each linkable to a card that implements it
- Test scenarios with structured evidence on close
- Decisions with rationale and alternatives
- API contracts (when the spec exposes an endpoint)
- Non-goals (explicit scope exclusion)
Status flow and gates
Once a spec is in
validated, its content is locked. Edits require an explicit validated_to_draft move, which requires the dedicated permission flag and a justification. This is what makes a spec a contract rather than a wiki page.Tool index
Lifecycle (8)
create_spec, get_spec, get_spec_context, list_specs, update_spec, move_spec, delete_spec, link_card_to_spec.Test scenarios (2)
add_test_scenario, list_test_scenarios. Status updates and the test-theater gate live on Validation gates.Business rules (4)
add, update, remove, list_business_rules.Decisions (5)
add, update, remove, link_task_to_decision, migrate_spec_decisions (legacy → structured Decision model).API contracts (4)
add, update, remove, list_api_contracts.Traceability links (4)
link_task_to_scenario, link_task_to_rule, link_task_to_contract, link_task_to_tr — bind cards back to spec content for the → done coverage gate.Lifecycle
okto_pulse_create_spec
Source: server.py:5462. Create a spec with title, acceptance criteria, FR, TR, BRs, and initial test scenarios. Most agents skip this in favour of derive_spec_from_ideation / derive_spec_from_refinement (see Ideation & refinement) so the spec inherits upstream context.
okto_pulse_get_spec
Source: server.py:5564. Get a spec with all linked artifacts.
okto_pulse_get_spec_context
Source: server.py:5624. Use this — not get_spec — before authoring or advancing a spec. The bundle includes the spec plus its sprint, cards, KG decisions, business rules, and API contracts in one call.
okto_pulse_list_specs
Source: server.py:5791. List specs on a board, filtered by status or parent ideation.
okto_pulse_update_spec
Source: server.py:5850. Update content fields (acceptance criteria, FR, TR, BRs, scenarios, contracts). Calling this on a validated spec returns CONFLICT — unlock first via move_spec to validated_to_draft.
okto_pulse_move_spec
Source: server.py:5946. Advance status. Each of the four forward gates is server-enforced; backward transitions (approved_to_draft, validated_to_draft) require dedicated permission flags.
okto_pulse_delete_spec
Source: server.py:10021. Permanently delete a spec. Linked cards and their conclusions remain — the foreign key is set to NULL, not cascaded. Prefer archive_tree for soft-delete with restore.
okto_pulse_link_card_to_spec
Source: server.py:10052. Attach an existing card to a spec. Useful when a sprint is created on one spec and a card from another spec needs to roll up into the same delivery.
Test scenarios (authoring)
Test scenarios are the bridge between acceptance criteria (what the agent claims) and evidence (what an implementer produces at close). The status update tool — and its anti-theater gate — lives on the Validation gates page.okto_pulse_add_test_scenario
Source: server.py:6010. Add a test scenario with required acceptance-criterion linkage. A spec without 100 % AC → scenario coverage cannot pass the → done gate.
okto_pulse_list_test_scenarios
Source: server.py:6105. List test scenarios on a spec with their evidence and status.
Business rules
Business rules capture invariants the implementation must honour. Each rule should be linkable to one or more cards vialink_task_to_rule — that’s what makes the FR → BR → Card linkage gate satisfiable.
Decisions
ADecision is a formalized design choice with rationale, alternatives considered, and consequences. Decisions are first-class KG nodes — past decisions are retrievable via kg_find_similar_decisions before an agent makes a similar call.
API contracts
Use API contracts to encode endpoints the spec exposes (or modifies). The structured shape unlocks future OpenAPI export and is queryable via the KG.Traceability links
The fourlink_task_to_* tools bind cards back to spec content. Each one satisfies a piece of the → done coverage gate.
Spec history
okto_pulse_get_spec_history
Source: server.py:10351. Paginated per-field edit log for a spec.
Permissions
For the gate-submission tools (
submit_spec_evaluation, submit_spec_validation), see the Validation gates page.
Errors
Next steps
Validation gates
submit_spec_evaluation, submit_spec_validation, submit_task_validation, and the test-theater anti-pattern enforcement.Sprints & cards
Slice the spec into reviewable deliveries; create and move cards through implementation.
Knowledge & attachments
Attach reference docs and binaries to a spec.
ADLC pipeline
Where the spec sits in the end-to-end flow.