| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- <xml_structuring_best_practices>
- <overview>
- XML tags help Claude parse prompts more accurately, leading to higher-quality outputs.
- This guide covers best practices for structuring mode instructions using XML.
- </overview>
- <why_use_xml_tags>
- <benefit type="clarity">
- Clearly separate different parts of your instructions and ensure well-structured content
- </benefit>
- <benefit type="accuracy">
- Reduce errors caused by Claude misinterpreting parts of your instructions
- </benefit>
- <benefit type="flexibility">
- Easily find, add, remove, or modify parts of instructions without rewriting everything
- </benefit>
- <benefit type="parseability">
- Having Claude use XML tags in its output makes it easier to extract specific parts of responses
- </benefit>
- </why_use_xml_tags>
- <core_principles>
- <principle name="consistency">
- <description>Use the same tag names throughout your instructions</description>
- <example>
- Always use <step> for workflow steps, not sometimes <action> or <task>
- </example>
- </principle>
-
- <principle name="semantic_naming">
- <description>Tag names should clearly describe their content</description>
- <good_examples>
- <tag>detailed_steps</tag>
- <tag>error_handling</tag>
- <tag>validation_rules</tag>
- </good_examples>
- <bad_examples>
- <tag>stuff</tag>
- <tag>misc</tag>
- <tag>data1</tag>
- </bad_examples>
- </principle>
- <principle name="hierarchical_nesting">
- <description>Nest tags to show relationships and structure</description>
- <example>
- <workflow>
- <phase name="preparation">
- <step>Gather requirements</step>
- <step>Validate inputs</step>
- </phase>
- <phase name="execution">
- <step>Process data</step>
- <step>Generate output</step>
- </phase>
- </workflow>
- </example>
- </principle>
- </core_principles>
- <common_tag_patterns>
- <pattern name="workflow_structure">
- <usage>For step-by-step processes</usage>
- <template><![CDATA[
- <workflow>
- <overview>High-level description</overview>
- <prerequisites>
- <prerequisite>Required condition 1</prerequisite>
- <prerequisite>Required condition 2</prerequisite>
- </prerequisites>
- <steps>
- <step number="1">
- <title>Step Title</title>
- <description>What this step accomplishes</description>
- <actions>
- <action>Specific action to take</action>
- </actions>
- <validation>How to verify success</validation>
- </step>
- </steps>
- </workflow>
- ]]></template>
- </pattern>
- <pattern name="examples_structure">
- <usage>For providing code examples and demonstrations</usage>
- <template><![CDATA[
- <examples>
- <example name="descriptive_name">
- <description>What this example demonstrates</description>
- <context>When to use this approach</context>
- <code language="typescript">
- // Your code example here
- </code>
- <explanation>
- Key points about the implementation
- </explanation>
- </example>
- </examples>
- ]]></template>
- </pattern>
- <pattern name="guidelines_structure">
- <usage>For rules and best practices</usage>
- <template><![CDATA[
- <guidelines category="category_name">
- <guideline priority="high">
- <rule>The specific rule or guideline</rule>
- <rationale>Why this is important</rationale>
- <exceptions>When this doesn't apply</exceptions>
- </guideline>
- </guidelines>
- ]]></template>
- </pattern>
- <pattern name="tool_usage_structure">
- <usage>For documenting how to use specific tools</usage>
- <template><![CDATA[
- <tool_usage tool="tool_name">
- <purpose>What this tool accomplishes</purpose>
- <when_to_use>Specific scenarios for this tool</when_to_use>
- <syntax>
- <command>The exact command format</command>
- <parameters>
- <parameter name="param1" required="true">
- <description>What this parameter does</description>
- <type>string|number|boolean</type>
- <example>example_value</example>
- </parameter>
- </parameters>
- </syntax>
- <examples>
- <example scenario="common_use_case">
- <code>Actual usage example</code>
- <output>Expected output</output>
- </example>
- </examples>
- </tool_usage>
- ]]></template>
- </pattern>
- </common_tag_patterns>
- <formatting_guidelines>
- <guideline name="indentation">
- Use consistent indentation (2 or 4 spaces) for nested elements
- </guideline>
- <guideline name="line_breaks">
- Add line breaks between major sections for readability
- </guideline>
- <guideline name="comments">
- Use XML comments <!-- like this --> to explain complex sections
- </guideline>
- <guideline name="cdata_sections">
- Use CDATA for code blocks or content with special characters:
- <![CDATA[<code><![CDATA[your code here]]></code>]]>
- </guideline>
- <guideline name="attributes_vs_elements">
- Use attributes for metadata, elements for content:
- <example type="good">
- <step number="1" priority="high">
- <description>The actual step content</description>
- </step>
- </example>
- </guideline>
- </formatting_guidelines>
- <anti_patterns>
- <anti_pattern name="flat_structure">
- <description>Avoid completely flat structures without hierarchy</description>
- <bad><![CDATA[
- <instructions>
- <item1>Do this</item1>
- <item2>Then this</item2>
- <item3>Finally this</item3>
- </instructions>
- ]]></bad>
- <good><![CDATA[
- <instructions>
- <steps>
- <step order="1">Do this</step>
- <step order="2">Then this</step>
- <step order="3">Finally this</step>
- </steps>
- </instructions>
- ]]></good>
- </anti_pattern>
- <anti_pattern name="inconsistent_naming">
- <description>Don't mix naming conventions</description>
- <bad>
- Mixing camelCase, snake_case, and kebab-case in tag names
- </bad>
- <good>
- Pick one convention (preferably snake_case for XML) and stick to it
- </good>
- </anti_pattern>
- <anti_pattern name="overly_generic_tags">
- <description>Avoid tags that don't convey meaning</description>
- <bad>data, info, stuff, thing, item</bad>
- <good>user_input, validation_result, error_message, configuration</good>
- </anti_pattern>
- </anti_patterns>
- <integration_tips>
- <tip>
- Reference XML content in instructions:
- "Using the workflow defined in <workflow> tags..."
- </tip>
- <tip>
- Combine XML structure with other techniques like multishot prompting
- </tip>
- <tip>
- Use XML tags in expected outputs to make parsing easier
- </tip>
- <tip>
- Create reusable XML templates for common patterns
- </tip>
- </integration_tips>
- </xml_structuring_best_practices>
|