Skip to main content
A skill definition is the contract between a domain expert and a coding agent. It tells the agent:
  • What this workflow does, when to use it, and how it fits into the broader fund-ops process
  • What steps it has, what each step does, and how each step renders to a human reviewer
  • What configuration the workflow accepts at runtime
  • Which template files to generate and what each one is responsible for
In Ntropii, a skill definition is a runbook.md file with YAML frontmatter and a markdown body, sitting at the root of each runbook directory.

Where skills live

Each runbook directory has exactly one runbook.md. The coding agent reads it, then writes (or updates) the files in templates/ to satisfy the skill.

Anatomy of a skill definition

Frontmatter — identity

The identity block is what shows up in tenant UIs and search. Tags and jurisdictions feed the skill library’s filters.

Frontmatter — steps

Each step describes one stage of the workflow. The agent uses these to produce the NtroWorkflow subclass and its activities.
Two step shapes: activity (a Python callable on the worker) and child_workflow (dispatches another runbook). The component field tells the Tenant UI how to render the step’s progress and review screen — LOADING, DATA_TABLE, SUMMARY, APPROVAL, etc.

Frontmatter — templates

A manifest of files the agent should generate, with a one-line responsibility for each:
The agent generates all of these. Anything in templates/ that isn’t listed here is treated as bespoke and left alone.

Frontmatter — config schema

JSON Schema for the runtime configuration the workflow accepts. This is what the Tenant UI renders as a config form, and what the runbook reads via ntro.capabilities.config at runtime.
Two scopes: global (applies to the whole run) and steps.X (applies to one step). The config form in the UI groups fields by scope.

Markdown body — when to use, workflow patterns, edge cases

After the frontmatter, the markdown body is for the agent’s grounding. Standard sections:
  • When to use — selection criteria. “Use this when an SPV needs a monthly NAV with HITL review at two checkpoints.”
  • Workflow patterns — code skeleton showing the canonical structure. Anchors the agent so the generated code matches house style.
  • Edge cases / variants — known forks. “If the GL is hand-maintained instead of in Xero, replace the post step with a download_link.”
The body is unstructured prose — the agent reads it the same way a human would.

How a coding agent uses this

1

Reads the skill

“I want a monthly NAV runbook for Acme SPV.” The agent finds runbooks/nav-monthly/runbook.md, reads the frontmatter and body, and now knows the step structure, the config schema, and the templates it needs to produce.
2

Reads existing templates as reference

The agent looks at the existing templates/workflow.py, activities.py, and models.py in nav-monthly to ground itself in the SDK calling conventions — which ntro.capabilities to import, how to call data.get_data_plane(), where @runbook.step decorators go.
3

Generates / adapts the templates

Either creates a new runbook directory (if the request is novel) or modifies the existing templates (if the request is “tweak this one for Acme’s specific schema”). The output is plain Python — no AI in the runtime.
4

Validates locally

Runs ntro workflow test (the local test harness) to confirm the runbook executes against fixtures. Iterates if scenarios fail.

Available skills today

Three skills ship in the runbook-templates repo, all DRAFT state and battle-testable: Use these as starting points. Forking and adapting is the expected pattern — Ntropii’s value is in the skill structure and the SDK that runbooks compose, not in shipping a one-size-fits-all NAV.

What the correction corpus does

When a fund accountant corrects a coding agent’s output during PR review (a wrong GL classification, a missing edge case, a misnamed field), that correction is captured with full context: skill slug, jurisdiction, error category, resolution. The corpus feeds back into future skill executions — over time, the same skill applied to similar tenants generates fewer errors before the human ever sees the PR. This is the long arc of the compiled-agent model: the LLM gets better at generating the deterministic code, even though it’s not in the runtime loop.

Workflows overview

NtroWorkflow and @runbook.step — the SDK primitives a generated runbook uses.

Coding agents

Wire your agent to consume these skills.