
# Source Nodes Overview

Source nodes are documents whose body contains **instructions for fetching live data** from external services. They are first-class nodes in the context graph — authored, versioned, and checksummed like any other document.

## Key distinction

When an agent resolves a `type: document` node, it reads the body as **knowledge to absorb**.

When an agent resolves a `type: source` node, it reads the body as **instructions to follow** — what calls to make, in what order, with what parameters, and how to interpret the results.

**The markdown body is the instruction set. The agent is the execution engine.**

## Design principle

Frontmatter carries what machines index. The body carries what agents execute.

The frontmatter tells the resolver "this is a source node that uses the Jira MCP server and depends on another source." The body tells the agent "call this tool with these parameters, then use the result like this."

## Example

```markdown
---
title: "Current Sprint Tickets"
type: source
tags: ["#engineering", "#sprint"]
status: published
version: 2
source:
  transport: mcp
  server: jira
  tools: [jira_get_sprint_issues]
  depends_on:
    - contextnest://sources/project-config
  cache_ttl: 300
---

# Current Sprint Tickets

This source provides live sprint data from Jira.

## Fetch the sprint

Call `jira_get_sprint_issues` with:
- **project**: Read from the project-config source
- **sprint**: "current"
- **fields**: summary, status, assignee, priority

## Interpret the results

Group tickets by status (To Do / In Progress / Done).
Flag any ticket marked "blocked" or with no assignee.
```

## Result lifecycle

Source results are **session-scoped** — they exist in the agent's working memory, not in the vault. The vault stores the authored instructions, not transient API responses.
