Skip to content

Tag reference

Note

This is a canonical reference. Most users interact with a small subset of tags. This page exists for pack authors, advanced workflows, and tooling integration. See the Tag system overview for conceptual grounding.

Why tags exist

Tags make agent behavior auditable, scorable, and evolvable:

  • Deterministic scoring — auditors map behavior to specific rules and checklists
  • Reproducible behavior — hash content to detect drift between environments
  • Tooling enforcement — tags are machine-readable, not just documentation

Without tags, prompts are opaque blobs. With tags, every instruction can be traced, versioned, and validated.


Conventions

All tags are embedded in HTML comments:

<!--<tag attribute="value">-->
Content here
<!--</tag>-->

Why HTML comments? This is an intentional design choice:

  • Survives Markdown rendering (invisible to readers)
  • Invisible to models unless explicitly referenced
  • Deterministic for hashing and scoring
  • Git-friendly (clean diffs)
  • Tooling-friendly (easy to parse)

Naming rules:

  • Tag names are lowercase with underscores
  • Versions are carried via a version attribute, not in the tag name
  • Attributes use standard key="value" syntax

Charter-level tags

Used in agent charters (agents/*.md) to structure full agent definitions.

Most commonly used: charter, purpose, workflow, tooling, validation, definition_of_done

Document structure

TagPurposeExample attributes
charterWraps entire charter documentname, version, scope
metadataCharter version, last reviewed, maintainer
agentic_preambleHigh-level identity, autonomy, mission
purposeCore role and goals

Example:

<!--<charter name="Documentation Author" version="1.0" scope="docs">-->
# Documentation Author Agent

<!--<purpose>-->
Produce authoritative, action-oriented documentation for the TypeScript MCP
ecosystem, covering runbooks, feature guides, and integration references.
<!--</purpose>-->

...

<!--</charter>-->

Inputs and outputs

TagPurposeExample attributes
inputsExpected inputs and context sources
output_specRequired outputs and their shape
payload_schema_hintMinimal schema hint for structured outputs

Research and planning

TagPurposeExample attributes
research_loopDefault research/exploration workflow
research_priorityPrecedence rules for sources of truth
planning_checklistPlanning steps before implementation

Example:

<!--<planning_checklist>-->
1. Confirm scope and audience via PM MCP task
2. Review existing docs for voice and structure
3. Create outline with section headers
4. Gather validation evidence requirements
<!--</planning_checklist>-->

Responsibilities

Container tag responsibilities with nested sub-tags:

Sub-tagPurpose
context_synthesisHow the agent aggregates domain info
prompt_authoringHow prompts are written and structured
quality_reviewQuality gates and review behaviors
library_stewardshipMaintaining prompt libraries and mappings
portfolio_hygieneKeeping agents, prompts, capabilities current

These tags signal that agents are maintained assets, not fire-and-forget prompts.

Operations

Most commonly used: workflow, tooling, tool_policy, definition_of_done

TagPurposeExample attributes
workflowStep-by-step from intake to completion
toolingCLI tools, MCP tools, utilities
tool_policyAllowed/disallowed tool usage
success_conditionsWhen the task is considered done
deliverablesArtifacts produced
validationLint, MCP validation, consistency checks
definition_of_doneFinal, user-facing completion criteria

Example:

<!--<definition_of_done>-->
- Documentation merged with validation evidence linked
- Reviewer feedback addressed
- Templates stored in repo and referenced in guide
<!--</definition_of_done>-->

Registry operations

Container tag registry with nested sub-tags:

Sub-tagPurpose
discoverHow to discover existing agents via MCP
updateHow to update existing agents
registerHow to register new agents
housekeepingOngoing registry hygiene

Other charter tags

TagPurpose
collaborationCoordination with other agents
self_reflectionAgent self-evaluation
fallbackDegraded mode guidance

Behavioral fragment tags

Used in reusable prompt fragments (agents/prompts/base/*.md).

Most commonly used: identity, instructions, tool_usage_policy

Core behavior

TagPurposeAttributes
identityShort identity paragraph
instructionsMain behavioral instructionsmodel (optional)

Example:

<!--<identity>-->
You are the Agent Session Auditor. Your only job is to produce a valid
audit JSON for the run.
<!--</identity>-->

<!--<instructions>-->
- Mode: `strict` (default)
- Required inputs: transcript, declared + observed prompts/versions
- Dimensions (0–100): instructionsAdherence, promptIntegrity, toolingCompliance...
<!--</instructions>-->

Operational patterns

TagPurposeAttributes
communication_guidelinesTone, Markdown usage, when to ask questionsversion
execution_loopPlanning/execution loop, modes, stop conditionsversion
tool_usage_policyMCP tool rules, what’s canonical/forbiddenversion

Example:

<!--<execution_loop version="1.0">-->
1. Parse task requirements
2. Plan approach (emit outline if complex)
3. Execute steps, updating status after each
4. Validate outputs against acceptance criteria
5. Summarize results and next steps
<!--</execution_loop>-->

Guardrails

TagPurposeAttributes
safety_and_dataData handling and secrecy rulesversion
status_update_specRequirements for progress updatesversion
summary_specRequirements for final summariesversion

Examples

TagPurposeAttributes
examplesContainer for example interactions
user_queryLabeled input exampleid
assistant_responseCorresponding response exampleid (matches user_query)

Capability metadata tags

Used in prompt fragments to bind content to registered capabilities.

Most commonly used: capability, guideline, checklist

capability

Wraps a full capability prompt for hashing and version tracking.

<!--<capability id="planning.vmp" pack="valdr" role="workflow">-->
# Capability Prompt — `planning.vmp`
...
<!--</capability>-->
AttributePurposeExample
idCanonical capability identifierplanning.vmp, auditor.base
packLogical prompt pack or directoryvaldr, acme
roleCapability role (determines prompt ordering)core, workflow, constraints

Capability roles

The role attribute determines where the capability appears in the composed system prompt. Valdr supports six roles:

RolePriorityPurposeUse for
core0Foundational system-level behaviorAgent identity, base capabilities, system guardrails
workflow1Operational instructions and execution patternsStep-by-step processes, execution loops, task runners
constraints2Rules, policies, and behavioral boundariesTool policies, security rules, compliance requirements
context3Background information and domain knowledgeDomain definitions, reference material, terminology
validation4Verification steps and completion criteriaChecklists, acceptance criteria, quality gates
integration5External system interfaces and API behaviorsMCP tool usage, API patterns, external service interactions

Capabilities are sorted by role priority first, then alphabetically by key within each role.

Warning

Deprecated roles: The following legacy role values are deprecated and will be removed in a future release:

Deprecated RoleMigration TargetNotes
basecoreUse core for foundational capabilities
systemcoreUse core for system-level behavior
guideworkflowUse workflow for operational instructions
policyconstraintsUse constraints for rules and boundaries
checklistvalidationUse validation for verification steps
specializationcontext or integrationChoose based on purpose

Update existing capabilities to use the new role enum values.

Scoring note: Canonical version is derived by hashing content inside the block. Map (id, hash) to semantic version externally. This avoids “v1-final-final” drift.

prompt

Wraps a top-level prompt registered in MCP.

<!--<prompt id="typescript.agent.guide" pack="valdr" role="workflow" version="1.1">-->
...
<!--</prompt>-->
AttributePurpose
idCanonical prompt identifier
packWorkspace/focus area (e.g., valdr, team name)
roleCapability role (see Capability roles)
versionOptional version number

prompt_fragment

Wraps reusable chunks when you need fragment-level hashing without a standalone capability.

AttributePurpose
idFragment identifier
packLogical grouping (e.g., valdr, team name)
roleCapability role (see Capability roles)
versionOptional version
modelOptional model selector (see Model targeting)

guideline

Wraps normative guidance blocks for scoring. Auditors use the type attribute to map findings to specific rule categories.

<!--<guideline type="testing" id="unit-test-coverage" pack="valdr">-->
All new functions require unit tests with ≥80% coverage.
<!--</guideline>-->
AttributePurposeExamples
typeGuideline categorytesting, security, observability, performance
idOptional identifier
packLogical grouping
versionOptional version

checklist

Wraps actionable checklists agents must follow. Auditors score against these—missing items become findings.

<!--<checklist type="pull-request" id="pr-checklist" pack="valdr">-->
- [ ] Tests pass
- [ ] No lint errors
- [ ] Docs updated
<!--</checklist>-->
AttributePurposeExamples
typeChecklist categorypull-request, release, validation
idOptional identifier
packLogical grouping
versionOptional version

Authoring guidelines

  1. Reuse existing tags — only add new ones if nothing fits; this prevents ecosystem rot
  2. Use version attributes on behavioral tags when making breaking changes
  3. Keep id attributes stable so they can be referenced in tests and scoring
  4. Default content is required — model-specific content is optional
  5. Tags are case-sensitive — use lowercase with underscores

When adding a new tag, document it here with a short description before using it in prompts.