Reuse And Imports Guide

ProtoML has several reuse mechanisms, and they solve different problems. This guide connects them into one practical workflow so you can choose the right one quickly.

Choose the right reuse tool

Shared participants

@participants_import "_participants.pml"

@tasks
-[ ] Prepare release notes @ptp=lead

@meeting "Minutes"
Lead: @@e=lead
Lead mail: @@ref=participants:lead:email

Use this when teams, committees, or recurring meeting series keep reusing the same people. The participant file becomes the shared source of truth.

Shared tags

@tags_import "_workflow_tags.pml"

@tasks
-[ ] Check deployment window @tag=review
-[ ] Confirm fix plan @tag=blocked

Use shared tags when reporting and workflow consistency matter across many documents. This is the most common cross-file reuse mechanism after plain imports.

Content imports

@import appendix "appendix.pml" pml
@import legal "legal_notice.html" html

@meeting "Minutes"
## Appendix
@@output=appendix
## Notice
@@import=legal

Content imports are best for maintained snippets, appendices, reusable sections, or legal text that should live outside the main document.

Direct macros vs. macro indexes

@macro badge "{{macro_dir}}/badge.pml"
@@macro=badge:text=review

This direct form is best for a small number of known macros inside one document or repository.

@macros_import ".protoml/macro-packs/macros.index.pml"
@@macro=decisionCard:title=Storage;text=Use the replicated tier

This indexed form is best once you install packs through macro_install and want one shared entry point for many macros.

Recommended file layout

meetings/
  weekly-sync.pml
shared/
  _participants.pml
  _workflow_tags.pml
snippets/
  appendix.pml
  legal_notice.html

This layout keeps shared assets explicit and avoids mixing long-lived vocabularies with one-off meeting text.

Common mistakes

Rule of thumb

Related guides