Skip to main content

Macros

What you probably want​

Three Digitorn features cover the use cases people usually mean by "macros":

Reusable commands → Skills​

For commands the user can invoke (/commit, /review, /audit), declare them under dev.skills. Each skill is a markdown file in the bundle's skills/ directory; the agent reads the file when the command is called.

yaml
dev:
skills:
- command: /commit
description: "Stage + commit + push the current diff"
path: skills/commit.md
- command: /review
description: "Adversarial code review with focus on security"
path: skills/review.md

Full reference: Skills System.

Reusable orchestration → Flows​

For deterministic graphs (triage → specialist → approval → output), use the flow: block. Flow nodes (agent, tool, parallel, approval, decision, terminal) compose with a fully implemented runtime, schema validation, and reachability checks.

Reusable prompt fragments → Bundle namespaces​

For sharing prompt content across agents, use the filesystem-backed namespaces ({{prompt.X}}, {{skill.X}}, {{behavior.X}}, {{include:path}}) - verified in Expressions → Namespaces and documented further in Bundle namespaces.

yaml
agents:
- id: assistant
system_prompt: |
You are an assistant.
{{prompt.guidelines}} # inlines prompts/guidelines.md
{{include:./shared/header.md}} # explicit path import

Multi-step workflows → Sub-agents​

For composable multi-step flows where each step is itself an agent turn, use the multi-agent pattern via Agent(...) - coordinator spawns specialists. See Multi-Agent.

Cross-references​