Tutorials / Author with your agent
Tutorial

Author a programme by conversation

Drive knowledge-graph authoring by talking to your agent over the Nebular authoring MCP. Learn to prompt with outcomes, watch the agent validate and build the graph, then publish a programme in under 25 minutes.

~25 min6 stepsupdated Jun 3, 2026
Before you start
A published or in-progress graph — or willingness to start fresh (the agent can create one from scratch)
Claude Code or Claude Desktop
A Nebular account — sign-in handles authentication automatically

Mint a personal access token, export it, and register the authoring MCP server with your agent. One command in Claude Code; one JSON block for Claude Desktop or any other MCP client.

Add the Nebular authoring MCP to your agent — no token to copy. Claude signs you in through the browser on first use, the .mcpb installer bakes the credential in for you.

bash
$claude mcp add nebular-authoring \
$ --transport http \
$ http://nebular.live/api/v1/mcp_authoring/
First invocation triggers an OAuth sign-in in your browser. Verify with claude mcp list — you should see nebular-authoring ✓ connected.
studio.nebular.ai · connect agent
Studio Connect agent to Studio dialog: MCP endpoint, the claude mcp add command, and a Generate token button

Before prompting, understand the four pieces: graph, outcomes, programme, and version. The agent loads the full pedagogical protocol via session_bootstrap on every session.

Nebular organises knowledge in four layers. A graph is a domain-curated set of micro-skills linked by prerequisite edges — it is stable and shared. Outcomes are observable goals attached to specific skills. A programme bundles outcomes into modules and lessons ordered by the graph topology. A version is an immutable published snapshot of a programme that learners enrol in.

  1. 1A skill is a ~20–30 min mastery unit: one essential question, one mechanism, 2–5 key concepts with weights.
  2. 2An outcome uses an observable Bloom verb: apply analyse design evaluate. Banned verbs: understand, know, appreciate, be familiar with.
  3. 3A prerequisite edge means “must master before”. Maximum 2–3 prereqs per target. Siblings are not prerequisites of each other.
session_bootstrap first
On every authoring session, the agent must call session_bootstrap before any other tool. It returns the full pedagogical protocol — KC test, grain-size rules, evidence-config discipline, quality gate, and your recent graph slugs. The response is the source of truth; these docs are just the entry point.
domain model · how pieces connect
GRAPHskills + prereqsOUTCOMESobservable verbsPROGRAMMEmodules · lessonsVERSIONv1.0 · immutable
session_bootstrap first
Returns the full pedagogical protocol, recent graph slugs, and the quality gate rules — call it before any other tool.

The single biggest lever is the prompt you open with. Topic names give the agent nothing to optimise against. Outcomes, use-case, level, and depth register let it order skills toward a concrete goal.

The weakest authoring prompt hands the agent a topic name. A strong one gives four things: why you need this (exam, project, curiosity), your starting point (prior knowledge), a depth register (proofs vs intuition), and the domain of application. Then state 1–4 goals as outcomes in the shape “a learner can <verb> <object> well enough to <situation>”, each with an observable task that proves mastery.

Topic-only — avoid
Make me a graph about linear algebra.
No use-case means the agent guesses depth register. No outcomes means it has no ordering target. The result is a generic survey that may not match your goal at all.
Outcome-driven — preferred
I'm preparing for a quant research interview in 8 weeks. I know calculus and basic probability; no prior linear algebra. Depth register: proofs not required, but I need the mechanics cold — I'll be doing calculations at a whiteboard. Domain: statistics + ML (covariance, PCA, regression). Goals: 1. A learner can apply eigendecomposition to diagonalise a real symmetric matrix well enough to explain PCA step by step — done when I decompose a 3×3 covariance matrix from scratch in under 6 steps. 2. A learner can analyse the SVD of a real matrix well enough to choose a truncation rank for a compression task — done when I compress an image with SVD and justify the rank chosen.
The agent can now order skills toward a concrete goal, bound prerequisites to your prior knowledge, and set evidence tasks that match a whiteboard interview format.
A good authoring prompt names
  1. 1The goal or use-case — exam, reading papers, building something, an interview, curiosity
  2. 2Your current level — what you already know; this bounds how deep prerequisites go
  3. 3The depth register — proofs-and-rigor vs compute-and-mechanics vs intuition-and-vocabulary
  4. 4The domain of application — signal processing, ML, optimisation, pure math
  5. 5What “done” looks like — an observable task or scenario that proves mastery
prompt template · paste into your agent
I need a programme for [GRAPH NAME OR TOPIC].

Use case: [exam / project / reading papers / interview / curiosity]
My current level: [what I already know — this bounds prerequisites]
Depth register: [proofs + rigor / mechanics + calculation / intuition + vocabulary]
Domain of application: [e.g. ML, signal processing, pure math, finance]

Goals (1–4 outcomes):
1. A learner can [apply/analyse/design/evaluate] [object]
   well enough to [situation].
   Done when: [observable task that proves mastery].
2. …

Please call session_bootstrap first, restate the outcomes
in the canonical form, and confirm before writing any skills.
studio.nebular.ai/editor · outcomes
Studio Outcomes tab explaining programme outcomes and the supports / teaches / assesses skill roles

The agent plans skills, proposes the graph as a batch transaction, validates for cycles and orphans, runs parallel prerequisite inference, and consolidates duplicates — showing you a summary before and after each write.

Once you confirm the restated outcomes, the agent works through a fixed pipeline: session_bootstrap → outcomes interview → skill planning → graph_transaction (atomic batch commit) → graph_validate → parallel skill_infer_prerequisites ×N → suggestions_consolidate. It plans and shows you the proposed skill list before any write.

cyclestransitive redundancyorphansunreachable skillsdepth checknaming consistency
You stay in control
The agent plans first and confirms with you before any write. All writes go through graph_transaction — atomic, with client_ref forward references so the whole batch commits or rolls back together. skill_infer_prerequisites returns read-only proposals; you vet them before they are attached. Nothing is permanent until you approve.
studio.nebular.ai/editor · graph
Studio graph editor: the skill graph the agent edits over MCP, with validation and layout tools

Generate the module tree, check the quality gate, and publish v1.0. The gate enforces outcome phrasing, curriculum coverage, and evidence discipline on every skill.

Once the graph and outcomes are confirmed, run programme_generate to get a module → lesson → skill tree. Then call programme_status to check the quality gate, and programme_publish once the grade passes.

If fell_back is true
programme_generate returns a fell_back flag when the prerequisite topology is over-constrained or the skill graph is disconnected. The remedy is usually to loosen a few prerequisite edges, split an overly broad skill, or add missing bridging concepts. Ask the agent to run graph_validate again with auto_fix=true.
The quality gate
programme_publish is blocked until programme_status returns a passing quality grade. The grade checks: concept-map completeness, outcome count and phrasing, curriculum coverage, and evidence-config discipline on every skill. Grade B or above unlocks publish.
prompt · publish
Publish the programme.
studio.nebular.ai/editor · programme
Studio Programme tab: the generated module and lesson tree produced by programme_generate

Publishing creates an immutable version at a shareable learner link. The separate learning MCP lets any agent teach from it, tracking mastery across sessions.

The published version is immediately available at nebular.ai/learn/<slug>. Share that link with any learner — they can start from Claude Code, Claude Desktop, or the web app, all drawing from the same programme and learner memory.

The learning MCP is a sibling
The authoring MCP (…/api/v1/mcp_authoring) builds the graph. The learning MCP (https://nebular.live/api/v1/mcp) is a separate server that any agent — Claude Code, Claude Desktop, a custom bot — can connect to for mastery-tracked teaching sessions. See the Quick start “Start learning” step for how learners connect.
nebular.ai/learn · published
Published programme on the learner site, with the Start with your agent connection options