Knowledge & attachments
Pulse exposes 21 of its 216 MCP tools for context attached alongside the structured ADLC artifacts:- Knowledge base entries — text snippets, design docs, API specs, analysis notes — attached to ideation, refinement, spec, or card. 18 tools (
server.py:4131–4281,:7565–7825,:10777–10974,:11074–11280). - Binary file attachments — files on cards. 3 tools (
server.py:3166–3317).
file_path or file_url rather than base64-passed through the model. The bytes never enter the LLM context, saving tokens and avoiding round-trip corruption.
Source-of-truth citations: okto-pulse-feature-inventory.md:272–289 (attachments + comments sub-section), :290–314 (ideation knowledge), :395–410 (card knowledge), :353–370 (spec knowledge), :446–456 (refinement knowledge).
Knowledge bases vs. attachments
Use knowledge entries when an agent needs to read the content while reasoning. Use attachments for binaries (PDFs, images, raw datasets) the agent needs to reference but not parse — or for any payload outside the text envelope.
Knowledge entries
Every parent type follows the same shape:add / list / get / delete. Cards add a fifth tool — update — because card knowledge is mutable inline JSONB.
Tool reference by parent
Ideation (server.py:4131–4281)
Refinement (server.py:11074–11280)
Spec (server.py:10777–10974)
Card (server.py:7565–7825)
Three ways to load content
add_ideation_knowledge, add_refinement_knowledge, and add_spec_knowledge all take a content / file_path / file_url triplet. Provide exactly one — the others stay empty.
File content is loaded once at attachment time and persisted on the parent. Subsequent edits to the source URL do not auto-refresh the entry — re-add (or for cards,
update_card_knowledge) to capture changes.Card knowledge is mutable
Specs/ideations/refinements treat knowledge as append-then-delete. Cards are different:okto_pulse_update_card_knowledge lets agents revise an entry in place — useful for evolving implementation notes captured during a card’s lifetime.
Spec → card propagation
When a sprint slices a spec into cards, attach the relevant knowledge to each card so the implementer’s view is self-contained.copy_knowledge_to_card deep-copies entries from the source spec onto Card.knowledge_bases with stable provenance.
source field of each copied KE is set to copied_from_spec:<spec_id>:<kb_id> so traceability is preserved through the lineage. Re-running the copy is idempotent — entries already attached (matched on id or source) are skipped.
knowledge_ids accepts a native list (preferred), a JSON array string, or pipe-separated values. Comma-only strings are rejected — see okto_pulse.core.mcp.helpers.coerce_to_list_str.
File attachments
Three tools, all card-scoped (server.py:3166–3317).
Three loaders, same trade-offs as knowledge
okto_pulse_list_attachments is read-only (Permissions.BOARD_READ); both upload and delete require their own scoped permissions. A blocked agent gets FORBIDDEN — adjust the preset in Board → Agents → Edit.
Permissions summary
See Permissions for the registry and presets.
Errors
Standard MCP error envelope. Codes that hit this domain:Next steps
Architecture & mockups
Visual design artifacts — entities, interfaces, diagrams, screen mockups.
Comments & questions
Free-text comments, choice questions, and Q&A across every entity type.
MCP reference index
All 216 tools across 8 domains.
ADLC pipeline
Where knowledge and attachments flow through the pipeline.