{
  "skill_name": "latex-paper-en",
  "evals": [
    {
      "id": 1,
      "prompt": "Compile my IEEE paper in main.tex, then explain why two citations are unresolved after BibTeX.",
      "expected_output": "Select compile and bibliography modules, run the correct commands in sequence, and report the build plus citation findings in LaTeX-oriented review format with exact failing steps, exit codes, or unresolved keys.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "regex",
          "pattern": "(compile|bibliography)",
          "description": "correct modules routed"
        },
        {
          "type": "regex",
          "pattern": "\\\\cite\\{",
          "description": "\\cite{} references preserved"
        },
        {
          "type": "regex",
          "pattern": "(exit code|error|unresolved)",
          "description": "build diagnostics reported"
        }
      ]
    },
    {
      "id": 2,
      "prompt": "Review the introduction section for grammar, sentence length, and logic, but do not touch equations or citation keys.",
      "expected_output": "Route to grammar, sentences, and logic modules with source-preserving comments, keeping equations, citation keys, labels, and math untouched.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "regex",
          "pattern": "(grammar|sentences|logic)",
          "description": "correct modules routed"
        },
        {
          "type": "not_contains",
          "text": "\\cite{",
          "description": "citation keys not rewritten"
        },
        {
          "type": "regex",
          "pattern": "% .+\\[Severity:",
          "description": "LaTeX comment format used"
        }
      ]
    },
    {
      "id": 3,
      "prompt": "Before I submit to ACM, check whether my figures are publication-ready and whether the title sounds too generic.",
      "expected_output": "Route to figures and title modules and return concrete pre-submission findings about figure readiness, missing assets, resolution risks, caption problems, or weak title wording.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "regex",
          "pattern": "(figures|title)",
          "description": "correct modules routed"
        },
        {
          "type": "regex",
          "pattern": "(DPI|resolution|caption|figure)",
          "description": "figure quality assessed"
        },
        {
          "type": "regex",
          "pattern": "\\[Severity: (Critical|Major|Minor)\\]",
          "description": "severity format correct"
        }
      ]
    },
    {
      "id": 4,
      "prompt": "Translate this Chinese methods paragraph into academic English, but keep \\\\cite{zhang2024} and $L_{pred}$ unchanged and use deep-learning terminology.",
      "expected_output": "Route to the translation module, preserve LaTeX fragments verbatim, surface terminology choices, and avoid silently rewriting citations, labels, or math.",
      "files": [],
      "assertions": [
        {
          "type": "contains",
          "text": "translation",
          "description": "translation module routed"
        },
        {
          "type": "contains",
          "text": "\\cite{zhang2024}",
          "description": "citation key preserved verbatim"
        },
        {
          "type": "contains",
          "text": "$L_{pred}$",
          "description": "math expression preserved"
        }
      ]
    },
    {
      "id": 5,
      "prompt": "Check the introduction section for AI-sounding phrases and tell me what to revise, but do not rewrite labels, citations, or equations.",
      "expected_output": "Route to the deai module and return source-preserving findings, risk notes, and revision targets without editing labels, citations, or math environments.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "deai",
          "description": "deai module routed"
        },
        {
          "type": "regex",
          "pattern": "(AI.?writing|AI.?trace|AI.?pattern)",
          "description": "AI pattern detection present"
        },
        {
          "type": "not_contains",
          "text": "\\label{",
          "description": "labels not rewritten"
        }
      ]
    },
    {
      "id": 6,
      "prompt": "Review the experiments section for weak baselines, unsupported claims, missing ablations, and absent significance reporting, but do not draft a replacement paragraph.",
      "expected_output": "Route to the experiment module and return reviewer-style LaTeX comments about comparator specificity, metric evidence, ablation coverage, significance reporting, efficiency comparisons, results discussion, and overclaiming.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "experiment",
          "description": "experiment module routed"
        },
        {
          "type": "regex",
          "pattern": "(ablation|baseline|significance)",
          "description": "experiment criteria covered"
        },
        {
          "type": "regex",
          "pattern": "\\[Severity: (Critical|Major|Minor)\\]",
          "description": "severity format correct"
        }
      ]
    },
    {
      "id": 7,
      "prompt": "Check whether the introduction jumps from background directly to our method without establishing the technical bottleneck or prior-work limitations.",
      "expected_output": "Route to the logic module and flag introduction funnel breaks such as background-to-contribution jumps or missing prior-work insufficiency derivation.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "logic",
          "description": "logic module routed"
        },
        {
          "type": "regex",
          "pattern": "(funnel|gap|bottleneck|jump)",
          "description": "funnel analysis present"
        }
      ]
    },
    {
      "id": 8,
      "prompt": "Tell me whether the abstract, the contribution claims in the introduction, and the conclusion are saying the same core story or drifting apart.",
      "expected_output": "Route to the logic module and return a cross-section consistency finding about problem, method, key result, and contribution alignment.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "logic",
          "description": "logic module routed"
        },
        {
          "type": "regex",
          "pattern": "(cross-section|alignment|consistency|drift)",
          "description": "cross-section analysis present"
        }
      ]
    },
    {
      "id": 9,
      "prompt": "Review the discussion section and tell me whether it is layered enough, or if it just repeats results without mechanism, comparison, limitations, or implications.",
      "expected_output": "Route to the experiment module and report shallow or unlayered discussion structure with concrete section-level comments.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "experiment",
          "description": "experiment module routed"
        },
        {
          "type": "regex",
          "pattern": "(layer|mechanism|limitation|implication)",
          "description": "discussion depth assessed"
        }
      ]
    },
    {
      "id": 10,
      "prompt": "Check whether the pseudocode in my IEEE LaTeX paper still uses a floating algorithm environment or misses the caption and label conventions reviewers expect.",
      "expected_output": "Route to the pseudocode module, apply IEEE-aware checks, and separate hard float violations from caption, label, or reference hygiene issues.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "pseudocode",
          "description": "pseudocode module routed"
        },
        {
          "type": "regex",
          "pattern": "(IEEE|algorithm|caption|label)",
          "description": "IEEE-aware pseudocode review present"
        },
        {
          "type": "regex",
          "pattern": "\\[Severity: (Critical|Major|Minor)\\]",
          "description": "severity format correct"
        }
      ]
    },
    {
      "id": 11,
      "prompt": "Rewrite the guidance around this algorithm2e block so it becomes IEEE-safe, and tell me whether line numbers or Require/Ensure are mandatory or only recommended.",
      "expected_output": "Route to the pseudocode module, explain that floating algorithm environments are the hard issue, and clearly distinguish line numbers or Require/Ensure as IEEE-safe defaults rather than official mandates.",
      "files": [],
      "assertions": [
        {
          "type": "contains",
          "text": "pseudocode",
          "description": "pseudocode module routed"
        },
        {
          "type": "regex",
          "pattern": "(recommended|not required|IEEE-safe)",
          "description": "advisory distinction present"
        },
        {
          "type": "regex",
          "pattern": "(algorithm2e|figure)",
          "description": "migration guidance present"
        }
      ]
    },
    {
      "id": 12,
      "prompt": "My Related Work reads like a paper-by-paper list. Keep every citation anchor, but show me how to rewrite it into consensus, disagreement, limitations, and the research gap.",
      "expected_output": "Route to the literature module, diagnose enumeration or missing comparison, preserve citation anchors, and provide a rewrite blueprint that moves from consensus to research gap.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "literature",
          "description": "literature module routed"
        },
        {
          "type": "regex",
          "pattern": "(consensus|disagreement|limitation|gap)",
          "description": "rewrite blueprint present"
        },
        {
          "type": "not_contains",
          "text": "\\cite{fabricated",
          "description": "no fabricated citations"
        }
      ]
    },
    {
      "id": 13,
      "prompt": "Give me a reviewer-facing rewrite plan for the Introduction of my LaTeX paper. I need paragraph roles, the technical bottleneck, and a claim-evidence map, but do not invent citations.",
      "expected_output": "Route to section-writing, load the Introduction guidance, and return an introduction outline with paragraph roles, technical bottleneck, proposed solution flow, and claim-evidence map while preserving LaTeX anchors.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "section-writing",
          "description": "section-writing module routed"
        },
        {
          "type": "regex",
          "pattern": "(Introduction|paragraph roles|technical bottleneck|claim-evidence)",
          "description": "introduction writing contract covered"
        },
        {
          "type": "not_contains",
          "text": "\\cite{fabricated",
          "description": "no fabricated citations"
        }
      ]
    },
    {
      "id": 14,
      "prompt": "Rewrite the Method overview and one module subsection around motivation, design, and technical advantage. Preserve all equations, \\ref{} anchors, and macros.",
      "expected_output": "Route to section-writing, use the Method guide, and provide a method outline or prose proposal organized around module motivation, design, technical advantage, and evidence without changing LaTeX anchors.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "section-writing",
          "description": "section-writing module routed"
        },
        {
          "type": "regex",
          "pattern": "(motivation|design|technical advantage|module)",
          "description": "method module triad present"
        },
        {
          "type": "regex",
          "pattern": "(preserve|unchanged|LaTeX|\\\\ref)",
          "description": "LaTeX preservation stated"
        }
      ]
    },
    {
      "id": 15,
      "prompt": "Help me revise the Conclusion so it answers the Introduction promises, summarizes evidence, and states limitations without overstating the experiments.",
      "expected_output": "Route to section-writing, use the Conclusion guide, and return a closure plan with solved problem, evidence recap, implication, limitation, future work, and claim-evidence boundaries.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "section-writing",
          "description": "section-writing module routed"
        },
        {
          "type": "regex",
          "pattern": "(Conclusion|closure|evidence|limitation|future work)",
          "description": "conclusion roles present"
        },
        {
          "type": "regex",
          "pattern": "(overstat|bounded|needs evidence|unsupported)",
          "description": "evidence boundary present"
        }
      ]
    },
    {
      "id": 16,
      "prompt": "Map every major claim in the Abstract, Introduction, and Experiments to visible evidence before suggesting wording changes.",
      "expected_output": "Route to section-writing with self-review guidance, return a claim-evidence map across sections, and mark unsupported or needs-evidence claims instead of inventing results.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "section-writing",
          "description": "section-writing module routed"
        },
        {
          "type": "regex",
          "pattern": "(Claim:|Evidence:|Status:|claim-evidence)",
          "description": "claim-evidence map emitted"
        },
        {
          "type": "regex",
          "pattern": "(needs evidence|unsupported|missing)",
          "description": "missing evidence marked"
        }
      ]
    },
    {
      "id": 17,
      "prompt": "Give me a reviewer-facing rewrite plan for the Introduction of my LaTeX paper. I need the 6-move funnel: stakes, structural gap, key abstraction, design intuition, contributions, and results preview. Preserve all citations and labels, and tell me which claims still need evidence.",
      "expected_output": "Route to section-writing, load the Introduction guide, and return an outline with paragraph roles, a structural gap, a named abstraction, contributions, and a claim-evidence map while preserving LaTeX anchors.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "section-writing",
          "description": "section-writing module routed"
        },
        {
          "type": "regex",
          "pattern": "(Introduction|paragraph roles|structural gap|key abstraction|results preview|claim-evidence)",
          "description": "intro funnel and closure present"
        },
        {
          "type": "regex",
          "pattern": "(evidence|gap|contribution)",
          "description": "evidence-driven framing present"
        },
        {
          "type": "not_contains",
          "text": "\\cite{fabricated",
          "description": "no fabricated citations"
        }
      ]
    },
    {
      "id": 18,
      "prompt": "My Related Work is just a paper-by-paper list. Reorganize it into 2-4 technical categories, state each category's structural limitation, and write one positioning sentence that shows how our approach differs. Keep citation anchors unchanged.",
      "expected_output": "Route to literature, return category clustering and structural limitations, and produce a positioning sentence that differentiates the paper without rewriting citation anchors.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "literature",
          "description": "literature module routed"
        },
        {
          "type": "regex",
          "pattern": "(category|structural limitation|positioning sentence|comparison)",
          "description": "related-work synthesis present"
        },
        {
          "type": "not_contains",
          "text": "\\cite{fabricated",
          "description": "no fabricated citations"
        }
      ]
    },
    {
      "id": 19,
      "prompt": "Rewrite the Experiments section as a conference-paper narrative: anchor the setup compactly, compare against named baselines, add takeaways after each result cluster, then cover ablation and robustness. Keep the dataset names and metrics.",
      "expected_output": "Route to experiment, return labeled setup anchoring, head-to-head comparison, takeaway paragraphs, ablation, and robustness notes instead of a flat results dump.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "experiment",
          "description": "experiment module routed"
        },
        {
          "type": "regex",
          "pattern": "(Takeaway|ablation|robustness|head-to-head|setup)",
          "description": "evaluation narrative present"
        },
        {
          "type": "regex",
          "pattern": "(baseline|comparison|evidence)",
          "description": "evidence-backed comparison present"
        }
      ]
    },
    {
      "id": 20,
      "prompt": "The introduction sounds AI-written: not merely A but B, essentially, the key is, and this shows. Reduce the AI tone, but first preserve the claim-evidence map, citations, labels, equations, and macros.",
      "expected_output": "Route to deai, diagnose English rhetorical scaffolds, protect the claim-evidence chain and LaTeX anchors, and provide revision targets or a blueprint rather than silently rewriting source.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "deai",
          "description": "deai module routed"
        },
        {
          "type": "regex",
          "pattern": "(rhetorical scaffold|structure shell|fake insight|vague referent)",
          "description": "English scaffold categories diagnosed"
        },
        {
          "type": "regex",
          "pattern": "(claim-evidence|citations|labels|equations|macros|preserve)",
          "description": "academic source-preserving contract stated"
        },
        {
          "type": "not_contains",
          "text": "guarantee detector",
          "description": "no detector-evasion promise"
        }
      ]
    },
    {
      "id": 21,
      "prompt": "My Results section reads as AI-written: present-tense reporting verbs (the method shows, outperforms) and over-claims (caused by, for the first time, universally). Flag the tense and over-claim problems, but preserve citations, labels, equations, and macros.",
      "expected_output": "Route to deai, flag present-tense reporting verbs in Results (should narrate in past tense) and the causal / firstness / universality over-claims, protect the LaTeX anchors, and provide revision targets rather than silently rewriting source.",
      "files": [
        "evals/fixtures/paper-project/main.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "deai",
          "description": "deai module routed"
        },
        {
          "type": "regex",
          "pattern": "(tense|past tense|present-tense)",
          "description": "tense issue diagnosed"
        },
        {
          "type": "regex",
          "pattern": "(over[- ]?claim|causal|first time|universal)",
          "description": "over-claim issue diagnosed"
        },
        {
          "type": "regex",
          "pattern": "(citations|labels|equations|macros|preserve)",
          "description": "source-preserving contract stated"
        },
        {
          "type": "not_contains",
          "text": "guarantee detector",
          "description": "no detector-evasion promise"
        }
      ]
    },
    {
      "id": 22,
      "prompt": "Review the five labeled Discussion cases in the attached fixture for AI tone and claim-evidence calibration. Flag only the defensive speculative explanation, explain the per-mechanism evidence gap, and state why Cases B-E are legitimate boundaries. Do not invent evidence or make unsupported mechanisms more certain.",
      "expected_output": "Route to deai with Discussion evidence review: identify Case A as a defensive speculative explanation, map each retained mechanism to evidence or a discriminating test, use undetermined when none is supported, and preserve the anchored hedge, evidenced alternatives, honest unknown, and controlled strong claim in Cases B-E.",
      "files": [
        "evals/fixtures/defensive_speculative_explanation.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "defensive speculative explanation",
          "description": "target composite pattern named"
        },
        {
          "type": "regex",
          "pattern": "(per-mechanism|evidence anchor|discriminating test)",
          "description": "mechanisms require local evidence mapping"
        },
        {
          "type": "regex",
          "pattern": "(undetermined|cannot determine|mechanism remains unknown)",
          "description": "unsupported attribution falls back to honest uncertainty"
        },
        {
          "type": "contains",
          "text": "Case B",
          "description": "single anchored hedge remains a non-finding"
        },
        {
          "type": "contains",
          "text": "Case C",
          "description": "evidenced alternatives remain a non-finding"
        },
        {
          "type": "contains",
          "text": "Case D",
          "description": "honest unknown remains a non-finding"
        },
        {
          "type": "contains",
          "text": "Case E",
          "description": "controlled strong claim remains a non-finding"
        },
        {
          "type": "regex",
          "pattern": "(controlled|ablation|earned|strong claim)",
          "description": "evidence-earned strong wording is preserved"
        },
        {
          "type": "not_contains",
          "text": "p = 0.01",
          "description": "no unsupported significance evidence is invented"
        }
      ]
    },
    {
      "id": 23,
      "prompt": "Review the eight labeled pattern-cluster cases in the attached fixture and route to deai. Treat Case A as the combined H-ING, H-PROMO, H-ATTR, H-SCOPE, and H-OUTLOOK positive; Case B as H-PRED; and Case C as H-TERM. Explain why Case D, Case E, Case F, Case G, and Case H are evidence-sufficient boundaries. Default to findings or a blueprint. If replacement prose is explicitly requested, run a fidelity audit and report Changed:, Protected:, Meaning-Check:, and Risk-Flags:. Deduplicate H-OUTLOOK against defensive speculative explanation findings. Preserve LaTeX anchors and never infer AI authorship or invent evidence.",
      "expected_output": "Route to deai; identify the seven claim-local H-* clusters only in Cases A-C; keep Cases D-H as non-findings because their metrics, citations, scope, technical relations, defined terminology, limitation, and future test earn the wording. Do not claim AI authorship. When prose is requested, use audit -> rewrite -> fidelity audit and return Changed:, Protected:, Meaning-Check:, and Risk-Flags: while preserving claims, Table references, citations, math, terminology, certainty, and scope. Merge a shared H-OUTLOOK/defensive-rhetoric root cause into one evidence-calibration finding and do not invent missing support.",
      "files": [
        "evals/fixtures/anti_ai_pattern_clusters.tex"
      ],
      "assertions": [
        {
          "type": "contains",
          "text": "deai",
          "description": "deai module routed"
        },
        {
          "type": "contains",
          "text": "H-ING",
          "description": "H-ING is classified explicitly"
        },
        {
          "type": "contains",
          "text": "H-PROMO",
          "description": "H-PROMO is classified explicitly"
        },
        {
          "type": "contains",
          "text": "H-ATTR",
          "description": "H-ATTR is classified explicitly"
        },
        {
          "type": "contains",
          "text": "H-PRED",
          "description": "H-PRED is classified explicitly"
        },
        {
          "type": "contains",
          "text": "H-TERM",
          "description": "H-TERM is classified explicitly"
        },
        {
          "type": "contains",
          "text": "H-SCOPE",
          "description": "H-SCOPE is classified explicitly"
        },
        {
          "type": "contains",
          "text": "H-OUTLOOK",
          "description": "H-OUTLOOK is classified explicitly"
        },
        {
          "type": "contains",
          "text": "Case A",
          "description": "Case A boundary is addressed"
        },
        {
          "type": "contains",
          "text": "Case B",
          "description": "Case B boundary is addressed"
        },
        {
          "type": "contains",
          "text": "Case C",
          "description": "Case C boundary is addressed"
        },
        {
          "type": "contains",
          "text": "Case D",
          "description": "Case D boundary is addressed"
        },
        {
          "type": "contains",
          "text": "Case E",
          "description": "Case E boundary is addressed"
        },
        {
          "type": "contains",
          "text": "Case F",
          "description": "Case F boundary is addressed"
        },
        {
          "type": "contains",
          "text": "Case G",
          "description": "Case G boundary is addressed"
        },
        {
          "type": "contains",
          "text": "Case H",
          "description": "Case H boundary is addressed"
        },
        {
          "type": "regex",
          "pattern": "(Changed:|Protected:|Meaning-Check:|Risk-Flags:)",
          "description": "fidelity proposal fields are retained"
        },
        {
          "type": "regex",
          "pattern": "(fidelity audit|claim|citation|scope|certainty)",
          "description": "academic payload is audited after an explicit rewrite"
        },
        {
          "type": "regex",
          "pattern": "(deduplicate|one finding|evidence calibration|primary)",
          "description": "overlapping outlook and defensive findings are merged"
        },
        {
          "type": "regex",
          "pattern": "(LaTeX|\\\\ref|\\\\cite|math|anchor)",
          "description": "LaTeX syntax and evidence anchors are protected"
        },
        {
          "type": "not_contains",
          "text": "AI-generated",
          "description": "no AI-authorship classification is made"
        },
        {
          "type": "not_contains",
          "text": "p = 0.01",
          "description": "no unsupported evidence is invented"
        }
      ]
    }
  ]
}
