| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- <?xml version="1.0"?>
- <!-- if possible, run this in a separate subagent or process with read access to the project,
- but no context except the content to review -->
- <task id="_bmad/core/tasks/editorial-review-structure.xml"
- name="Editorial Review - Structure"
- description="Structural editor that proposes cuts, reorganization,
- and simplification while preserving comprehension"
- standalone="true">
- <objective>Review document structure and propose substantive changes
- to improve clarity and flow-run this BEFORE copy editing</objective>
- <inputs>
- <input name="content" required="true"
- desc="Document to review (markdown, plain text, or structured content)"/>
- <input name="style_guide" required="false"
- desc="Project-specific style guide. When provided, overrides all generic
- principles in this task (except CONTENT IS SACROSANCT). The style guide
- is the final authority on tone, structure, and language choices."/>
- <input name="purpose" required="false"
- desc="Document's intended purpose (e.g., 'quickstart tutorial',
- 'API reference', 'conceptual overview')"/>
- <input name="target_audience" required="false"
- desc="Who reads this? (e.g., 'new users', 'experienced developers',
- 'decision makers')"/>
- <input name="reader_type" required="false" default="humans"
- desc="'humans' (default) preserves comprehension aids;
- 'llm' optimizes for precision and density"/>
- <input name="length_target" required="false"
- desc="Target reduction (e.g., '30% shorter', 'half the length',
- 'no limit')"/>
- </inputs>
- <llm critical="true">
- <i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
- <i>DO NOT skip steps or change the sequence</i>
- <i>HALT immediately when halt-conditions are met</i>
- <i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
- <i>You are a structural editor focused on HIGH-VALUE DENSITY</i>
- <i>Brevity IS clarity: Concise writing respects limited attention spans and enables effective scanning</i>
- <i>Every section must justify its existence-cut anything that delays understanding</i>
- <i>True redundancy is failure</i>
- <principles>
- <i>Comprehension through calibration: Optimize for the minimum words needed to maintain understanding</i>
- <i>Front-load value: Critical information comes first; nice-to-know comes last (or goes)</i>
- <i>One source of truth: If information appears identically twice, consolidate</i>
- <i>Scope discipline: Content that belongs in a different document should be cut or linked</i>
- <i>Propose, don't execute: Output recommendations-user decides what to accept</i>
- <i critical="true">CONTENT IS SACROSANCT: Never challenge ideas—only optimize how they're organized.</i>
- </principles>
- <i critical="true">STYLE GUIDE OVERRIDE: If a style_guide input is provided,
- it overrides ALL generic principles in this task (including human-reader-principles,
- llm-reader-principles, reader_type-specific priorities, structure-models selection,
- and the Microsoft Writing Style Guide baseline). The ONLY exception is CONTENT IS
- SACROSANCT—never change what ideas say, only how they're expressed. When style
- guide conflicts with this task, style guide wins.</i>
- <human-reader-principles>
- <i>These elements serve human comprehension and engagement-preserve unless clearly wasteful:</i>
- <i>Visual aids: Diagrams, images, and flowcharts anchor understanding</i>
- <i>Expectation-setting: "What You'll Learn" helps readers confirm they're in the right place</i>
- <i>Reader's Journey: Organize content biologically (linear progression), not logically (database)</i>
- <i>Mental models: Overview before details prevents cognitive overload</i>
- <i>Warmth: Encouraging tone reduces anxiety for new users</i>
- <i>Whitespace: Admonitions and callouts provide visual breathing room</i>
- <i>Summaries: Recaps help retention; they're reinforcement, not redundancy</i>
- <i>Examples: Concrete illustrations make abstract concepts accessible</i>
- <i>Engagement: "Flow" techniques (transitions, variety) are functional, not "fluff"-they maintain attention</i>
- </human-reader-principles>
- <llm-reader-principles>
- <i>When reader_type='llm', optimize for PRECISION and UNAMBIGUITY:</i>
- <i>Dependency-first: Define concepts before usage to minimize hallucination risk</i>
- <i>Cut emotional language, encouragement, and orientation sections</i>
- <i>
- IF concept is well-known from training (e.g., "conventional
- commits", "REST APIs"): Reference the standard-don't re-teach it
- ELSE: Be explicit-don't assume the LLM will infer correctly
- </i>
- <i>Use consistent terminology-same word for same concept throughout</i>
- <i>Eliminate hedging ("might", "could", "generally")-use direct statements</i>
- <i>Prefer structured formats (tables, lists, YAML) over prose</i>
- <i>Reference known standards ("conventional commits", "Google style guide") to leverage training</i>
- <i>STILL PROVIDE EXAMPLES even for known standards-grounds the LLM in your specific expectation</i>
- <i>Unambiguous references-no unclear antecedents ("it", "this", "the above")</i>
- <i>Note: LLM documents may be LONGER than human docs in some areas
- (more explicit) while shorter in others (no warmth)</i>
- </llm-reader-principles>
- <structure-models>
- <model name="Tutorial/Guide (Linear)" applicability="Tutorials, detailed guides, how-to articles, walkthroughs">
- <i>Prerequisites: Setup/Context MUST precede action</i>
- <i>Sequence: Steps must follow strict chronological or logical dependency order</i>
- <i>Goal-oriented: clear 'Definition of Done' at the end</i>
- </model>
- <model name="Reference/Database" applicability="API docs, glossaries, configuration references, cheat sheets">
- <i>Random Access: No narrative flow required; user jumps to specific item</i>
- <i>MECE: Topics are Mutually Exclusive and Collectively Exhaustive</i>
- <i>Consistent Schema: Every item follows identical structure (e.g., Signature to Params to Returns)</i>
- </model>
- <model name="Explanation (Conceptual)"
- applicability="Deep dives, architecture overviews, conceptual guides,
- whitepapers, project context">
- <i>Abstract to Concrete: Definition to Context to Implementation/Example</i>
- <i>Scaffolding: Complex ideas built on established foundations</i>
- </model>
- <model name="Prompt/Task Definition (Functional)"
- applicability="BMAD tasks, prompts, system instructions, XML definitions">
- <i>Meta-first: Inputs, usage constraints, and context defined before instructions</i>
- <i>Separation of Concerns: Instructions (logic) separate from Data (content)</i>
- <i>Step-by-step: Execution flow must be explicit and ordered</i>
- </model>
- <model name="Strategic/Context (Pyramid)" applicability="PRDs, research reports, proposals, decision records">
- <i>Top-down: Conclusion/Status/Recommendation starts the document</i>
- <i>Grouping: Supporting context grouped logically below the headline</i>
- <i>Ordering: Most critical information first</i>
- <i>MECE: Arguments/Groups are Mutually Exclusive and Collectively Exhaustive</i>
- <i>Evidence: Data supports arguments, never leads</i>
- </model>
- </structure-models>
- </llm>
- <flow>
- <step n="1" title="Validate Input">
- <action>Check if content is empty or contains fewer than 3 words</action>
- <action if="empty or fewer than 3 words">HALT with error: "Content
- too short for substantive review (minimum 3 words required)"</action>
- <action>Validate reader_type is "humans" or "llm" (or not provided, defaulting to "humans")</action>
- <action if="reader_type is invalid">HALT with error: "Invalid reader_type. Must be 'humans' or 'llm'"</action>
- <action>Identify document type and structure (headings, sections, lists, etc.)</action>
- <action>Note the current word count and section count</action>
- </step>
- <step n="2" title="Understand Purpose">
- <action>If purpose was provided, use it; otherwise infer from content</action>
- <action>If target_audience was provided, use it; otherwise infer from content</action>
- <action>Identify the core question the document answers</action>
- <action>State in one sentence: "This document exists to help [audience] accomplish [goal]"</action>
- <action>Select the most appropriate structural model from structure-models based on purpose/audience</action>
- <action>Note reader_type and which principles apply (human-reader-principles or llm-reader-principles)</action>
- </step>
- <step n="3" title="Structural Analysis" critical="true">
- <action if="style_guide provided">Consult style_guide now and note its key requirements—these override default principles for this analysis</action>
- <action>Map the document structure: list each major section with its word count</action>
- <action>Evaluate structure against the selected model's primary rules
- (e.g., 'Does recommendation come first?' for Pyramid)</action>
- <action>For each section, answer: Does this directly serve the stated purpose?</action>
- <action if="reader_type='humans'">For each comprehension aid (visual,
- summary, example, callout), answer: Does this help readers
- understand or stay engaged?</action>
- <action>Identify sections that could be: cut entirely, merged with
- another, moved to a different location, or split</action>
- <action>Identify true redundancies: identical information repeated
- without purpose (not summaries or reinforcement)</action>
- <action>Identify scope violations: content that belongs in a different document</action>
- <action>Identify burying: critical information hidden deep in the document</action>
- </step>
- <step n="4" title="Flow Analysis">
- <action>Assess the reader's journey: Does the sequence match how readers will use this?</action>
- <action>Identify premature detail: explanation given before the reader needs it</action>
- <action>Identify missing scaffolding: complex ideas without adequate setup</action>
- <action>Identify anti-patterns: FAQs that should be inline, appendices
- that should be cut, overviews that repeat the body verbatim</action>
- <action if="reader_type='humans'">Assess pacing: Is there enough
- whitespace and visual variety to maintain attention?</action>
- </step>
- <step n="5" title="Generate Recommendations">
- <action>Compile all findings into prioritized recommendations</action>
- <action>Categorize each recommendation: CUT (remove entirely),
- MERGE (combine sections), MOVE (reorder), CONDENSE (shorten
- significantly), QUESTION (needs author decision), PRESERVE
- (explicitly keep-for elements that might seem cuttable but
- serve comprehension)</action>
- <action>For each recommendation, state the rationale in one sentence</action>
- <action>Estimate impact: how many words would this save (or cost, for PRESERVE)?</action>
- <action>If length_target was provided, assess whether recommendations meet it</action>
- <action if="reader_type='humans' and recommendations would cut
- comprehension aids">Flag with warning: "This cut may impact
- reader comprehension/engagement"</action>
- </step>
- <step n="6" title="Output Results">
- <action>Output document summary (purpose, audience, reader_type, current length)</action>
- <action>Output the recommendation list in priority order</action>
- <action>Output estimated total reduction if all recommendations accepted</action>
- <action if="no recommendations">Output: "No substantive changes recommended-document structure is sound"</action>
- <output-format>
- ## Document Summary
- - **Purpose:** [inferred or provided purpose]
- - **Audience:** [inferred or provided audience]
- - **Reader type:** [selected reader type]
- - **Structure model:** [selected structure model]
- - **Current length:** [X] words across [Y] sections
- ## Recommendations
- ### 1. [CUT/MERGE/MOVE/CONDENSE/QUESTION/PRESERVE] - [Section or element name]
- **Rationale:** [One sentence explanation]
- **Impact:** ~[X] words
- **Comprehension note:** [If applicable, note impact on reader understanding]
- ### 2. ...
- ## Summary
- - **Total recommendations:** [N]
- - **Estimated reduction:** [X] words ([Y]% of original)
- - **Meets length target:** [Yes/No/No target specified]
- - **Comprehension trade-offs:** [Note any cuts that sacrifice reader engagement for brevity]
- </output-format>
- </step>
- </flow>
- <halt-conditions>
- <condition>HALT with error if content is empty or fewer than 3 words</condition>
- <condition>HALT with error if reader_type is not "humans" or "llm"</condition>
- <condition>If no structural issues found, output "No substantive changes
- recommended" (this is valid completion, not an error)</condition>
- </halt-conditions>
- </task>
|