Quality Assurance Auditor logo

Quality Assurance Auditor

Community
yushui2022
quality-assurance-auditor

审计建模证据链与论文质量,检查指标与声明是否绑定、图表是否可读取并对应真实运行、结论是否有证据支撑,产出可追踪的审计报告。当运行证据需要放行判定、章节或全文需要质量复核、或用户要求验收与查漏洞时使用。

Overview

Publisheryushui2022
RepositoryMathModel-Skill
Skill namequality-assurance-auditor
Stars
455
Forks
28
Bundled files
4
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by yushui2022 on GitHub. Read the source before you install it.

Installation

Install the Quality Assurance Auditor AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/yushui2022/MathModel-Skill/tree/standard/skills/quality-assurance-auditor
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/yushui2022/MathModel-Skill.git /tmp/MathModel-Skill
mkdir -p .claude/skills
cp -r /tmp/MathModel-Skill/skills/quality-assurance-auditor .claude/skills/quality-assurance-auditor
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Quality Assurance Auditor in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Quality Assurance Auditor on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Quality Assurance Auditor is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

质量审计员(Quality Assurance Auditor)

Resolve <SKILL_ROOT> to the parent directory of this loaded skill folder, using its actual absolute path. Run commands from the contest project root, never from the installed skill directory. The placeholder is not a shell environment variable.

全局流程协作约束(长对话防漂移)

  • 本 skill 不得作为孤立入口。用户要求完整论文、生成 Word、继续流程或不确定阶段时,先回到 paper-workflow-orchestrator 判断当前 S0-S8 阶段。
  • 启动或继续本 skill 的正式任务前,必须运行:
    bash
    python "<SKILL_ROOT>/paper-workflow-orchestrator/scripts/workflow_guard.py" --skill quality-assurance-auditor
  • 如果输出 [WORKFLOW FAIL] 或报告 status != "PASS",停止本 skill,按 paper_output/qa/workflow_guard_report.json 的失败项回补前置阶段,不得凭记忆继续。
  • 本 skill 只写入自己契约范围内的 paper_output/ 产物;完成后必须回到 paper-workflow-orchestrator 判断下一步,并用 context-memory-keeper 记录已完成产物、阻塞项和下一步。
  • 长对话中如果上下文变长、阶段不确定或用户分开调用 skill,先运行:
    bash
    python "<SKILL_ROOT>/paper-workflow-orchestrator/scripts/workflow_guard.py" --status
    再读取 paper_output/qa/workflow_guard_report.json、paper_output/preflight_report.json、paper_output/input_manifest.json、paper_output/results/run_manifest.json 和本 skill 的上游 JSON 契约,按报告里的 recommended_skill 与 next_action 继续。
  • 继续流程前,必须把 paper_output/context/workflow_memory.json 视为长期断点记录;若其中的 current_step、next_step、recommended_skill 与 workflow_guard.py --status 不一致,以 guard 报告为准。
  • 每次完成本 skill 的产物后,先回到 paper-workflow-orchestrator 或运行 workflow_guard.py --status,再更新 workflow memory:
    bash
    python "<SKILL_ROOT>/context-memory-keeper/scripts/update_workflow_memory.py"
    更新后读取 paper_output/context/workflow_memory.json / .md,确认下一步和推荐 skill 已记录。

执行契约

  • 上游输入:优先读取 paper_output/plan/model_route.json、rubric_alignment.json、data_plan.json、visualization_plan.json、paper_output/figure_index.json、paper_output/results/model_results.json、paper_output/results/run_manifest.json、paper_output/results/metrics.json、paper_output/results/conclusions.json 与 paper_output/tables/table_index.json;缺失时回退到 paper_output/step1/problem_analysis.json。
  • 正式成稿前必须输出 paper_output/qa/evidence_gate_report.json 与 .md,机器可读报告必须记录本次审计输入的 SHA-256。paper_output/tasks.json 仅是 legacy/quickstart 的可选清单,不属于 S7 正式契约。
  • 下游交接:official evidence gate PASS 后直接进入 paper-formal-writer 的自适应章节写作。paper-micro-unit-generator 只有在 S7 修复队列明确要求 micro-repair 时才参与正式流程。
  • 推荐下一步:回到 paper-workflow-orchestrator,由 guard 路由到 paper-formal-writer;不得把 legacy/quickstart 合并稿当作正式稿审计通过。
  • 失败回退:若 problem_files/ 为空应阻塞;若模型路线缺失则用题意分析生成任务;若题意分析也缺失才使用通用任务模板;若正式 evidence gate 缺少 run_manifest.json 或运行记录不匹配,必须回退到 model-code-and-result-generator 重新运行建模代码。

目标

  • 在论文生成的每一个关键节点插入“强制验收点”,只有审计通过才能进入下一步,防止“字数达标但逻辑错误”或“模型偷换”等隐性偷懒。
  • 提供可量化的通过/失败判定,并给出具体修改清单,确保最终论文既“厚”又“对”。
  • 明确区分“quickstart 验证草稿”和“正式比赛稿”:脚本跑通不等于论文合格;结果证据仍为骨架时,不得交付最终稿。
  • 明确职责边界:evidence_gate.py 判断结果是否来自可复核运行、输入与产物是否仍新鲜、指标和图表表格是否可用;paper-formal-writer/scripts/check_paper_format.py 判断动态篇幅、三级标题、原生公式、正文引文、图表引用和 Word 渲染质量。两个门禁都通过后,才能称为正式稿。

适用时机

  • 任何一步 skill(赛题解析、模型选型、结构设计、微单元生成)完成后,用户希望确认“这一步真的做对了吗?”
  • 在合并全文之前,做最终一致性扫描,防止前后矛盾、遗漏约束、图表断链。
  • 当用户怀疑“AI 偷偷简化了模型”或“生成的内容空洞”时,立即调用本 skill 进行强制审计。

输入

  • 必填:待审计产物(如 problem-doc-model-selector 输出的模型路线、论文结构清单、或单个微单元文本)。
  • 必填:原始赛题 PDF/Word 内容或关键约束摘录,用于对照。
  • 可选:用户自定义的评分点清单(如 CUMCM 官方 rubric),可覆盖默认规则。

输出

  • 审计报告(JSON + 人类可读):
    • checkpoint_id:本次审计节点编号
    • status:PASS / FAIL
    • score:0–100 量化得分
    • failures[]:未通过项列表,含「问题描述」「位置」「建议修改」
    • warnings[]:可接受但建议优化的项
  • 若状态为 FAIL,则拒绝进入下一步,并给出「必须修改清单」
  • 若状态为 PASS,则给出「已验证通过」印章,可安全继续

审计维度(可逐层开关)

  1. 赛题覆盖度
    • 是否 100% 识别所有子问题(Q1/Q2/Q3…)
    • 是否 100% 覆盖所有显式约束(不等式、边界、特殊条件)
  2. 模型-任务匹配度
    • 模型类型(预测/优化/分类)与任务目标是否一致
    • 是否具备处理给定数据格式的能力(时序→时序模型、截面→回归等)
  3. 逻辑一致性
    • 假设 ⇄ 模型推导 ⇄ 结果解释 是否闭环
    • 符号表是否出现冲突或双口径(同一符号两种含义)
  4. 评分点对齐度
    • 每个高分点(敏感性分析、对照实验、误差量化)是否在结构或文本中被“可定位”地承诺
  5. 内容完整性与反灌水(High Priority)
    • 禁止凑字数:复制段落后只替换数字、序号、少量同义词或连接词,均视为机械扩写并直接 FAIL。
    • 拒绝重复和占位:连续重复、数字归一化后近重复、模板占位符和“待补结果”痕迹均直接 FAIL。
    • 结构核查:对照正式 outline 检查核心章节和每问证据是否完整;不能用空泛背景、重复结论或图表描述堆叠代替模型推导。
  6. 证据与运行新鲜度
    • execution_provenance、run_manifest.json、建模脚本、输入文件和输出产物必须相互匹配,记录的 SHA-256 必须等于当前文件。
    • 新 1.1 账本还须核对当前 run_id 与四份共享结果契约快照;RUNNING、超时、旧结果复用和运行后手改契约均不能通过。旧 1.0 仅兼容并警告,升级规则见建模技能的 references/execution-records.md。
    • 计算指标必须是有限 JSON 数值;字符串数字、布尔值、None、NaN、Inf 或缺少 result_summary 均直接 FAIL。
    • 图表或表格只要缺失、空文件、生成失败、标记为 placeholder,或包含失败/占位说明,均不得作为正式证据。
    • 结果、指标、结论及正式图表只接受 computed/verified/validated/PASS(不区分大小写);同时存在 status 和 evidence_status 时两者都必须有效。未知状态、缺状态、FAIL 不能放行。
    • 正式图表必须属于对应问题成功运行的 output_artifacts,哈希一致且可解码。图片必须可读取;表格使用有表头和数据行的 UTF-8 CSV/TSV 或 XLSX。
    • S3 探索草图和数据画像不是模型实验,保留 needs_review。正式索引只纳入真实重算的证据,不能仅改状态或手签哈希;失败实验记录保留在实验日志,不冒充正式结论。
    • 当前门禁策略为 policy_version=2;旧 PASS 必须重新执行 S6。代码、运行输入输出及图表都纳入下游新鲜度检查;这不是自动认证数学正确性,仍须对照原题人工审稿。
  7. 图表-正文链检测
    • 正文是否出现“见图 3”而图 3 真实存在且编号正确
    • 图表标题与正文描述是否语义一致
  8. 正式交付检查
    • Word 导出、原生公式、正文引文、三级标题和渲染质量由 paper-formal-writer 负责;本 skill 不从 final_paper.md 直接拼装正式 Word。
    • 最终验收必须读取 format_check_report.json,确认状态为 PASS、输入哈希仍新鲜且 render_qa.status=PASS。

工作流程(可嵌套到任意阶段)

  1. 接收待审计产物与原始赛题
  2. 按用户指定的维度逐项扫描
  3. 生成 PASS/FAIL 报告与修改清单
  4. 若 FAIL,则阻塞后续 skill 调用,强制返回修改;若 PASS,则盖章放行
  5. 可选:将审计结果写入 .audit_log.jsonl,供后续追溯

使用示例

  • 输入:(1)problem-doc-model-selector 输出的「模型路线」、(2)赛题原文
  • 行为:
    • 检查是否遗漏子问题 → 发现 Q3 未被提及 → FAIL
    • 报告:failures: [{"issue": "子问题 Q3 未被识别", "suggestion": "在模型路线中补充 Q3 的任务拆解与指标定义"}]
    • 用户必须先修正模型路线,重新审计通过后才能进入结构设计

防偷懒机制

  • 本 skill 绝不生成任何新内容,只做「Review & Reject」
  • 所有判定规则公开透明,用户可自定义阈值或开关维度
  • FAIL 时阻塞正式流程,必须实质修改;本地文件可被编辑,因此门禁不是防恶意伪造的安全边界。

备注

  • 审计规则默认对齐 CUMCM 国赛评分标准,可通过 rubric= 参数覆盖
  • 支持中英文赛题与输出,关键词库可扩展
  • 脚本检查不依赖外部模型;公式含义、单位和实验设计仍需 Agent 对照原题审核,规则通过不保证论文正确。

附录 A:脚本入口(推荐)

本 skill 的可执行脚本都放在 scripts/ 下。

当前 scripts/pipeline.py 是 legacy/quickstart 基础检查脚本,负责初始化目录、检查 problem_files/ 并按需生成 paper_output/tasks.json。正式 S6 使用 evidence_gate.py,正式 S7 不依赖 tasks.json。

scripts/evidence_gate.py 是正式成稿前证据门禁脚本,负责检查每个 question_id 是否具备真实模型结果、有限且非空的评价指标、可读取的图表或表格、结论回扣和任务追踪。official 模式会复核 execution_provenance 与 paper_output/results/run_manifest.json,比较建模脚本、输入文件和输出产物的当前大小与 SHA-256,拒绝运行后被修改的代码或数据;缺少 result_summary、失败/空/占位图表表格、无匹配运行记录也会失败。它会输出 paper_output/qa/evidence_gate_report.json 与 .md,并在 JSON 的 input_hashes 中记录本次门禁输入,供后续格式化和 workflow guard 检查报告是否过期。official 模式未通过会返回非零退出码;quickstart 模式只给 warning。

paper-formal-writer/scripts/check_paper_format.py 是正式成稿后的格式门禁脚本。它读取 outline 中按子问题数量生成的动态篇幅目标,检查 1 / 1.1 / 1.1.1 三级标题、每问的建模/算法/结果/检验、图表引用、正文引文与参考文献闭环、可编辑 Word OMML 公式、重复段落和内部工程话术。最终交付必须使用 --render required,通过 LibreOffice 将 DOCX 转为 PDF 并验证页数和可提取文本;报告同时记录源稿、DOCX、outline、索引和 evidence report 的哈希。它不替代 evidence_gate.py,而是在证据门禁通过后阻止内容或版式不合格的 Word 被称为最终稿。

  • 若运行 legacy/quickstart 且存在 paper_output/plan/model_route.json,pipeline 会优先按模型路线、评分点证据、主模型、验证计划和建议图表动态生成微单元清单。
  • 若存在 paper_output/plan/data_plan.json、visualization_plan.json 与 paper_output/figure_index.json,脚本会做轻量证据链检查:确认图表 ID、输出路径和数据路径可追溯,但不会因为计划图尚未实际生成就阻塞全流程。
  • 若存在 paper_output/results/model_results.json、metrics.json、conclusions.json 与 paper_output/tables/table_index.json,脚本会把 result_summary、key_metrics、tables、conclusions、evidence_status 写入每个子问题任务,供微单元生成器直接使用。
  • 若不存在模型路线契约但存在 paper_output/step1/problem_analysis.json,脚本会按真实子问题、任务类型、推荐模型、验证计划和建议图表动态生成微单元清单。
  • 若不存在结构化题意分析,脚本才回退到通用任务清单模板。
  • 若 paper_output/tasks.json 已存在,默认不覆盖;需要按最新题意重新生成时,设置 MATHMODEL_REGENERATE_TASKS=1 后再运行。

更细的审计规则写在本 SKILL.md 中,Agent 在真正验收论文时必须结合正文、题面、任务清单和图表引用执行这些规则,而不能只把脚本跑通当作质量通过。

在项目根目录运行:

bash
python "<SKILL_ROOT>/quality-assurance-auditor/scripts/pipeline.py"

正式成稿前运行证据门禁:

bash
python "<SKILL_ROOT>/quality-assurance-auditor/scripts/evidence_gate.py"

quickstart 验证时只看 warning:

bash
python "<SKILL_ROOT>/quality-assurance-auditor/scripts/evidence_gate.py" --mode quickstart

行为:official 模式读取模型路线、真实运行账本、结果、指标、结论、图表和表格,输出带输入哈希的正式证据门禁;pipeline 仅为 legacy/quickstart 生成可选任务清单。

目录约定(与项目全局对齐)

  • 本技能会强制要求 problem_files/ 非空。
  • 本技能统一在 paper_output/qa/ 下产出正式门禁报告;legacy/quickstart 清单仍位于 paper_output/tasks.json。

前后衔接

  • 常作为 S6 全局门禁:正式写作前必须通过。
  • official PASS 后回到 paper-workflow-orchestrator,通常进入 paper-formal-writer;微单元仅处理 S7 明确排队的局部修复。

约束(必须遵守)

  • Memory Interaction (必做):
    • 审计通过后:必须调用 context-memory-keeper,记录证据门禁状态、报告哈希和下一阶段。
  • 本技能是 S6 全局门禁:正式写作依赖 fresh PASS,不依赖任务清单。
  • 正式 paper-micro-unit-generator 入口必须由 repair_queue.json 的 micro-repair 项触发;legacy/quickstart 才依赖 tasks.json。
  • 若 evidence_gate.py 未通过,禁止把 final_paper.docx 称为最终稿;必须回到 model-code-and-result-generator 或当前赛题专用代码,补齐真实结果、指标、图表、表格和结论。
  • 若 paper-formal-writer/scripts/check_paper_format.py --render required 未通过,禁止把 final_paper.docx 称为最终稿;必须回到 final_paper_source.md 或格式化阶段修复动态篇幅、标题结构、图表解释、原生公式、正文引文、重复内容、参考文献、附录或渲染问题。
  • 当用户已生成 paper_output/final_paper_source.md 时,使用 S7 final audit 与 S8 format gate 做最终一致性把关。

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Quality Assurance Auditor AI skill do?

审计建模证据链与论文质量,检查指标与声明是否绑定、图表是否可读取并对应真实运行、结论是否有证据支撑,产出可追踪的审计报告。当运行证据需要放行判定、章节或全文需要质量复核、或用户要求验收与查漏洞时使用。

Why use Quality Assurance Auditor on TypingMind?

Because you install it once and use it with any model. Quality Assurance Auditor is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Quality Assurance Auditor in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/yushui2022/MathModel-Skill/tree/standard/skills/quality-assurance-auditor. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Quality Assurance Auditor?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Quality Assurance Auditor?

As many as you like. As long as a model supports skills, you can use Quality Assurance Auditor with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Quality Assurance Auditor AI skill free?

Yes. It is published on GitHub by yushui2022 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇