qa-report-humanizer

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
<objective> A polished QA report that says nothing is worse than a rough one that says what broke. "A critical defect was identified in the authentication module" passes every grammar check and tells the reader nothing. This skill rewrites QA reports, bug reports, test summaries, and status updates so a real engineer can act on them — and guarantees the rewrite invents no numbers, errors, or severities that were not in the source. </objective>
<objective> 一份措辞完美但毫无实质内容的QA报告,远不如一份粗糙但明确指出问题的报告。 “在认证模块中发现一个严重缺陷”这句话通过所有语法检查,但读者从中得不到任何有效信息。本技能可改写QA报告、Bug报告、测试总结和状态更新内容,让真实工程师能据此采取行动——同时保证改写内容不会编造任何源文档中不存在的数字、错误信息或严重等级。 </objective>

Discovery Questions

调研问题

Check
.agents/qa-project-context.md
first — it carries the team's tone, the tracker, and severity conventions; skip anything answered there. Then clarify only what changes the rewrite:
  • Who reads this — an engineer, an exec, or a customer? An engineer wants the failing selector and the repro; an exec wants ship/no-ship and open blockers; a customer wants impact and timeline. The register and what you cut differ for each.
  • What channel — Slack, PR comment, or a formal report? Slack gets 2-3 lines and a link; a PR comment gets the specific code/selector fix; a report gets structure. Length and formatting follow the channel.
  • Are the numbers and severities locked facts that must survive verbatim? If the source says "9 failed" and "P1," those carry through unchanged. If a figure is missing, you name the gap — you do not invent one (see Core Principle 5).
首先查看
.agents/qa-project-context.md
文件——其中包含团队的表述风格、追踪工具和严重程度约定;跳过其中已解答的问题。仅澄清会影响改写结果的内容:
  • 这份内容的读者是谁——工程师、高管还是客户? 工程师需要失败选择器和复现步骤;高管需要是否可发布的结论和未解决的阻碍;客户需要影响范围和时间线。针对不同读者,表述语气和删减内容有所不同。
  • 发布渠道是什么——Slack、PR评论还是正式报告? Slack内容只需2-3行加链接;PR评论需包含具体代码/选择器修复方案;正式报告需要结构化内容。篇幅和格式需匹配渠道要求。
  • 数字和严重等级是必须完全保留的既定事实吗? 如果源文档显示“9项失败”和“P1”,这些内容需完全保留。如果缺失数据,需明确指出缺口——不得编造(参见核心原则5)。

Core Principles

核心原则

  1. Specific beats comprehensive. "Login fails when the email has a plus sign" beats "Various authentication edge cases were identified." The reader fixes the first and learns nothing from the second. Name the behavior, the trigger, and the scope.
  2. Say what happened, not what category it falls into. "Authentication module" is a bucket; "login with plus-sign emails" is a bug. Categories let the writer sound thorough while hiding that they don't know the specifics. Replace every category with the concrete thing inside it.
  3. If the reader can't tell what broke or what to do, the report failed. Write for the person who has to fix it at 4pm on a Friday. Lead with what's broken or risky, then what they should do about it. Skip the parts nobody reads.
  4. Preserve every fact; cut every adjective. The rewrite changes the prose, never the data. No number, error string, severity, bug description, or test result may shift. The only things you delete are filler, hedging, and synonym cycling — not information.
  5. Never invent the specifics you're asked to add. "Make it specific" tempts the model to manufacture an exact percentage, an incident count, or a repro it never saw. Do not. If the source is vague and the number isn't verifiable, the honest rewrite names the gap ("user impact not measured") instead of writing "8% of users." A fabricated metric is a worse failure than a vague one.
  1. 具体表述优于笼统概括。 “当邮箱包含加号时登录失败”比“发现认证模块存在多种边缘问题”更有效。读者能直接修复前者,而从后者中学不到任何有用信息。需明确说明问题行为、触发条件和影响范围。
  2. 描述实际发生的情况,而非归类。 “认证模块”是一个分类;“带加号邮箱的登录问题”是具体Bug。分类会让撰写者听起来考虑周全,但实则掩盖了对细节的不了解。将所有分类替换为具体问题。
  3. 如果读者无法判断哪里出了问题或该怎么做,这份报告就是失败的。 为周五下午需要修复问题的人撰写报告。先说明问题或风险,再给出解决方案。跳过无人关注的内容。
  4. 保留所有事实;删除所有修饰词。 改写仅调整措辞,绝不修改数据。任何数字、错误字符串、严重等级、Bug描述或测试结果都不得更改。仅删除冗余内容、含糊表述和同义重复——不得删除有效信息。
  5. 绝不编造要求补充的细节。 “让表述更具体”可能会诱使模型编造未在源文档中出现的具体百分比、事件数量或复现步骤。绝对禁止这种行为。如果源文档表述模糊且数据无法验证,诚实的改写应指出缺口(如“用户影响未统计”),而非编造“8%的用户受影响”。捏造的指标比模糊表述更糟糕。

QA-specific AI patterns to detect and fix

需要检测和修复的QA专属AI生成模式

For each: the BAD draft, the rewrite, and why. The single most damaging one — the template opener — is shown in full; the rest are compact.
每个模式都包含:糟糕示例、改写后示例及原因说明。其中最具破坏性的模式——模板化开头——会完整展示;其余模式则简化呈现。

1. The template opener (the worst offender)

1. 模板化开头(最严重问题)

Bad:
Test execution was completed successfully for Sprint 47. A total of 342 test cases were executed across 5 test suites, achieving a 97.4% pass rate. The following sections provide detailed results.
Better:
Sprint 47: 342 tests run, 9 failed. 6 of the failures are in checkout (payment form validation). The other 3 are flaky timing issues we've seen before.
Why: the first version buries the signal under throat-clearing. The second tells you what happened and where to look in one line.
糟糕示例:
已成功完成Sprint 47的测试执行。共在5个测试套件中执行了342个测试用例,通过率达97.4%。以下章节提供详细结果。
优化后:
Sprint 47:执行342项测试,9项失败。其中6项失败出现在结账流程(支付表单验证环节),另外3项是此前已出现过的不稳定计时问题。
原因:第一版将关键信息隐藏在冗长的开场白中。第二版用一句话说明发生了什么以及问题位置。

2. Inflated severity language

2. 夸大的严重程度表述

Bad: "A critical defect was identified in the authentication module that could potentially impact the user experience across multiple touchpoints." Better: "Login breaks if your email has a
+
in it. We've checked analytics — about 8% of our users have plus-sign emails. Needs a fix before release."
Why: a "critical defect in the authentication module" is a category; "login breaks if your email has a plus sign" is something you can fix. (The 8% here is from the source's own analytics — don't add a figure the source doesn't have.)
糟糕示例:“在认证模块中发现一个严重缺陷,可能会影响多个触点的用户体验。” 优化后:“当邮箱包含
+
时登录失败。我们查看了分析数据——约8%的用户使用带加号的邮箱。需在发布前修复。”
原因:“认证模块中的严重缺陷”是一个分类;“当邮箱包含加号时登录失败”是可修复的具体问题。(此处的8%来自源文档自身的分析数据——不得添加源文档中没有的数字。)

3. The pass-rate obsession

3. 过度关注通过率

Bad: "The overall pass rate increased from 94.2% to 97.1%, demonstrating significant improvement and showcasing the team's commitment to quality." Better: "Pass rate went from 94% to 97%. Most of that was fixing the 3 flaky Playwright tests that kept timing out on the dashboard load. Real bugs found: 2 (both in the new export feature)."
Why: pass rates are vanity metrics without context. Say what actually changed.
糟糕示例:“整体通过率从94.2%提升至97.1%,体现了显著进步,也展示了团队对质量的承诺。” 优化后:“通过率从94%提升至97%。主要原因是修复了仪表板加载时频繁超时的3个不稳定Playwright测试用例。实际发现的Bug:2个(均出现在新的导出功能中)。”
原因:脱离上下文的通过率是虚荣指标。需说明实际发生的变化。

4. Generic risk language

4. 通用风险表述

Bad: "Several high-risk areas have been identified that require careful monitoring. The team recommends continued vigilance and proactive testing." Better: "The payment flow has no E2E coverage for 3D Secure cards. We've had two production incidents from this in the past 6 months. I'd prioritize this over the admin panel work."
Why: "high-risk areas" and "continued vigilance" mean nothing. Name the area, name the risk, say what to do.
糟糕示例:“已识别出多个高风险领域,需密切监控。团队建议保持警惕并主动开展测试。” 优化后:“支付流程未覆盖3D Secure卡的端到端测试。过去6个月我们因此发生过2次生产事故。我建议优先处理此项工作,而非管理面板的相关任务。”
原因:“高风险领域”和“保持警惕”毫无意义。需明确指出具体领域、风险以及应对措施。

5. Synonym cycling for test results

5. 测试结果的同义重复

Bad: "The authentication tests passed successfully. The login verification suite completed without issues. The credential validation checks returned positive results. The sign-in workflow tests executed as expected." Better: "All auth tests passed (login, registration, password reset, SSO)."
Why: four ways to say "auth tests passed" is four times too many. One outcome gets one verb.
糟糕示例:“认证测试成功通过。登录验证套件无问题完成。凭证验证检查返回积极结果。登录流程测试按预期执行。” 优化后:“所有认证测试均通过(登录、注册、密码重置、SSO)。”
原因:用四种方式表达“认证测试通过”完全多余。一个结果只需一种表述。

6. The "despite challenges" closer

6. “尽管存在挑战”式结尾

Bad: "Despite several challenges encountered during the testing phase, the team successfully completed all planned test activities. Moving forward, the focus will be on continuous improvement." Better: "We didn't get to the mobile browser tests this sprint — ran out of time after the checkout regression. Carrying those to next sprint. Everything else is done."
Why: name the gap and the reason, then the carry-forward plan. Drop the "despite challenges" framing.
糟糕示例:“尽管在测试阶段遇到了一些挑战,团队仍成功完成了所有计划的测试活动。接下来,重点将放在持续改进上。” 优化后:“本迭代我们未完成移动浏览器测试——处理结账回归测试后时间不足。将推迟到下一个迭代完成。其他工作均已完成。”
原因:明确说明未完成的工作及原因,再给出后续计划。删除“尽管存在挑战”这类套话。

7. Vague stakeholder updates

7. 模糊的干系人更新

Bad: "Quality metrics continue to trend positively. The team is aligned on priorities and committed to delivering a high-quality release." Better: "The release looks fine. 4 bugs open, all P2 or lower. The login plus-sign bug (P1) was fixed yesterday. Smoke tests pass on staging."
Why: lead with ship/no-ship and the open blockers. That's the decision the reader is making.
糟糕示例:“质量指标持续向好。团队已对齐优先级,致力于交付高质量版本。” 优化后:“版本发布准备就绪。现有4个Bug,均为P2或更低等级。登录加号Bug(P1)已于昨日修复。预发布环境冒烟测试通过。”
原因:先说明是否可发布及未解决的阻碍。这是读者需要做出的决策依据。

8. PR review comments that say nothing

8. 无实质内容的PR评审评论

Bad: "Great work on this implementation! I noticed a few potential areas for improvement that might enhance the overall test coverage and robustness." Better: "This test only checks the happy path. What happens when the API returns a 429? And the selector
.btn-submit
will break if anyone changes the CSS class — use
getByRole('button', { name: 'Submit' })
instead."
Why: name the missing scenario and the brittle line, then the concrete fix.
getByRole
is Playwright's recommended user-facing locator — prefer it over CSS-class selectors.
糟糕示例:“这个实现做得很棒!我注意到一些潜在的改进点,可能会提升整体测试覆盖率和健壮性。” 优化后:“这个测试仅覆盖了正常流程。当API返回429状态码时会发生什么?另外,选择器
.btn-submit
会在CSS类名更改时失效——建议改用
getByRole('button', { name: 'Submit' })
。”
原因:明确指出缺失的场景和脆弱代码,再给出具体修复方案。
getByRole
是Playwright推荐的面向用户的定位器——优先于CSS类选择器。

9. Bug report padding (with repro and evidence)

9. 冗余的Bug报告(包含复现步骤和证据)

Bad: "While conducting comprehensive regression testing of the user management module, a significant defect was discovered that impacts the core functionality of the system." Better:
Deleting a user doesn't revoke their API tokens — they can still call the API after deletion. Repro: create a user, mint a token,
DELETE /api/users/{id}
, then
GET /api/me
with that token. Returns
200 OK
with the user's data instead of
401 Unauthorized
. Found in the user-management API.
Why: lead with the broken behavior, give a 2-line repro and the actual error/status so the fixer can reproduce it in seconds. Drop the passive "was discovered" and the testing-session preamble.
糟糕示例:“在对用户管理模块进行全面回归测试时,发现一个影响系统核心功能的重大缺陷。” 优化后:
删除用户后未吊销其API令牌——用户删除后仍可调用API。 复现步骤:创建用户,生成令牌,调用
DELETE /api/users/{id}
,然后使用该令牌调用
GET /api/me
。 返回
200 OK
及用户数据,而非预期的
401 Unauthorized
。问题出在用户管理API中。
原因:先说明问题行为,再用2行文字给出复现步骤和实际错误/状态码,让修复人员能在几秒内复现问题。删除被动语态的“被发现”和测试场景的前置说明。

10. The rule-of-three summary

10. 三段式总结套路

Bad: "This sprint we improved quality, velocity, and confidence. The team demonstrated strong collaboration, technical excellence, and customer focus." Better: "This sprint we fixed the checkout flakiness (was failing 12% of the time, now <1%) and added E2E coverage for the new export feature."
Why: three generic virtues in a tricolon is the loudest AI tell in a sprint summary. Replace with the two things that actually happened.
糟糕示例:“本迭代我们提升了质量、速度和信心。团队展现了强大的协作能力、技术实力和客户关注度。” 优化后:“本迭代我们修复了结账流程的不稳定问题(此前失败率12%,现在低于1%),并为新的导出功能添加了端到端测试覆盖。”
原因:用三个通用优点组成的排比句是迭代总结中最明显的AI生成特征。替换为实际完成的两项工作。

How to rewrite

改写方法

  1. Cut the opening paragraph. Most intros are throat-clearing. Delete everything before the first useful fact.
  2. Lead with what matters. What broke? What's risky? What should someone do? That goes first.
  3. Replace categories with specifics. "Authentication module" → "login with plus-sign emails." "Performance degradation" → "dashboard takes 8s to load (was 2)." "Several edge cases" → "empty cart, expired coupon, currency mismatch."
  4. Kill the filler. Remove every phrase in
    references/filler-blocklist.md
    — "It is worth noting that," "Moving forward," "Despite challenges," "The team is committed to," "Stakeholders can feel confident," and the rest.
  5. Add what's useful — without inventing it. What should the reader do next? What's the risk if they don't? How confident are you (be honest — "I'm not sure this is stable yet" is fine)? If a number to back a claim isn't in the source, say so; don't manufacture one.
  6. Read it out loud. If you wouldn't say it in standup, rewrite it.
  1. 删除开头段落。 大多数引言都是冗余的开场白。删除第一个有用事实之前的所有内容。
  2. 优先展示重要内容。 哪里出问题了?存在什么风险?该怎么做?这些内容放在最前面。
  3. 用具体内容替换分类。 “认证模块”→“带加号邮箱的登录问题”;“性能下降”→“仪表板加载时间从2秒增至8秒”;“多个边缘场景”→“空购物车、过期优惠券、货币不匹配”。
  4. 删除冗余内容。 删除
    references/filler-blocklist.md
    中的所有短语——例如“值得注意的是”、“接下来”、“尽管存在挑战”、“团队致力于”、“干系人可放心”等。
  5. 补充有用内容——但不得编造。 读者接下来该做什么?不处理会有什么风险?你的信心如何(诚实表述——“我不确定这是否稳定”是可以的)?如果源文档中没有支持主张的数据,需明确说明;不得编造。
  6. 大声朗读内容。 如果不会在站会上这么说,就改写。

Format-specific guidance

格式专属指南

FormatLead withSkipAlso include
Test execution summaryFailure count, where they are, whether they're newTotal counts, pass % (unless asked)What's not covered yet, what to watch
Bug reportWhat breaks, how to reproduce it, who's affected"while performing comprehensive testing…"Actual error message, status code, screenshot, or console output
Sprint update (stakeholders)Release readiness (yes/no/conditional), open blockersMethodology, process, team-morale linesWhat you'd want to know if you were deciding whether to ship
Slack messageThe result in 2-3 lines + a linkGreetings, "I wanted to share…"
PostmortemWhat broke, when, how long, who was affected"This postmortem aims to provide…"An honest account of what you missed and why
Slack example — Bad: "Hello team, I wanted to share the results of our latest test execution…" Better: "E2E run passed. 2 flaky failures (both dashboard timeout, known issue). Full report: [link]"
格式优先展示跳过内容额外包含
测试执行总结失败数量、问题位置、是否为新问题总测试数、通过率(除非被要求)未覆盖的内容、需关注的点
Bug报告问题现象、复现步骤、影响人群“在进行全面测试时……”这类表述实际错误信息、状态码、截图或控制台输出
迭代更新(面向干系人)发布就绪状态(是/否/有条件)、未解决的阻碍方法论、流程、团队士气相关内容如果你是决策发布的人,想知道的信息
Slack消息2-3行结果 + 链接问候语、“我想分享……”这类表述
事后复盘问题现象、发生时间、持续时长、影响人群“本复盘旨在提供……”这类表述对遗漏问题及原因的诚实说明
Slack示例——糟糕:“大家好,我想分享最新的测试执行结果……” 优化后:“端到端测试通过。2项不稳定失败(均为仪表板超时,已知问题)。完整报告:[链接]”

Anti-Patterns

反模式

  • Inventing the specifics you were asked to add. Rewriting a vague draft into a precise-sounding one by manufacturing a percentage, an incident count, or a repro that wasn't in the source. This breaks the fact-preservation guarantee — name the gap instead.
  • Opening with "Test execution was completed successfully" when tests failed. The opener contradicts the body. Lead with the failures.
  • "Potential impact" instead of the actual impact. If you know the impact, state it; if you don't, say it's unmeasured. "Potential" is a hedge that hides which one you mean.
  • Writing "the team is aligned" in any context. It conveys zero information and is a pure AI tell.
  • Padding 3 bullets into 12 by rewording the same thing. Synonym cycling. One outcome, one statement.
  • Closing with optimistic statements that add no information. "Moving forward, the focus will be on continuous improvement" — delete it.
  • Passive voice to avoid naming what broke. "An issue was identified" hides the subject. Name what broke and where.
  • Starting a bug report with the testing session instead of the bug. Nobody needs "while conducting regression testing of the module." Start with the broken behavior.
  • 编造要求补充的细节。 通过捏造源文档中不存在的百分比、事件数量或复现步骤,将模糊的草稿改写为看似精确的内容。这违反了事实保留原则——应指出缺口而非编造。
  • 测试失败时仍以“测试执行成功完成”开头。 开头与内容矛盾。应优先展示失败情况。
  • 用“潜在影响”代替实际影响。 如果知道影响范围,直接说明;如果不知道,说明未统计。“潜在”是模糊表述,掩盖了实际情况。
  • 在任何语境下使用“团队已对齐”。 这句话毫无信息价值,是典型的AI生成特征。
  • 将3个要点改写为12个,重复表述同一内容。 同义重复。一个结果只需一种表述。
  • 添加无信息价值的乐观结尾。 “接下来,重点将放在持续改进上”——删除此类内容。
  • 用被动语态回避问题主体。 “发现一个问题”掩盖了问题所在。应明确指出哪里出了问题。
  • Bug报告以测试场景开头,而非问题本身。 没人需要“在对模块进行回归测试时”这类表述。直接从问题现象开始。

Verification

验证

The fact-preservation promise (Core Principle 4) is the load-bearing claim — prove it mechanically, smallest check first:
  1. Numbers and severities preserved. Extract every figure from input and output and diff the sets. The output set must be a subset of the input set — anything in the output that isn't in the input is a fabricated fact:
    bash
    grep -oE '[0-9]+(\.[0-9]+)?%?|P[0-3]|[0-9]{3}' input.md  | sort -u > /tmp/in.txt
    grep -oE '[0-9]+(\.[0-9]+)?%?|P[0-3]|[0-9]{3}' output.md | sort -u > /tmp/out.txt
    comm -13 /tmp/in.txt /tmp/out.txt   # must be empty (allow only obvious rounding, e.g. 97.4 -> 97)
  2. Filler blocklist returns zero matches. Copy the "Grep-ready regex" line from
    references/filler-blocklist.md
    into
    BLOCKLIST
    and grep the output:
    bash
    BLOCKLIST='it('\''?s)? worth noting|moving forward|in conclusion|despite (several )?challenges|the team is (committed|aligned)|stakeholders can feel confident'
    grep -iE "$BLOCKLIST" output.md   # expect no output; extend BLOCKLIST with the full regex from the reference
    Any hit is a surviving AI tell — rewrite that line.
  3. Second-pass clean. Run the output through the global
    humanizer
    (or
    avoid-ai-writing
    ) skill in detect mode. It should flag no remaining em-dash overuse, tricolon, or vague attribution. If it flags something QA-specific that this skill missed, fix it here too.
事实保留承诺(核心原则4)是核心要求——需通过机械方式验证,从最小检查项开始:
  1. 数字和严重等级完全保留。 提取输入和输出中的所有数字,对比两个集合。输出集合必须是输入集合的子集——输出中任何未在输入中出现的内容都是捏造的事实:
    bash
    grep -oE '[0-9]+(\.[0-9]+)?%?|P[0-3]|[0-9]{3}' input.md  | sort -u > /tmp/in.txt
    grep -oE '[0-9]+(\.[0-9]+)?%?|P[0-3]|[0-9]{3}' output.md | sort -u > /tmp/out.txt
    comm -13 /tmp/in.txt /tmp/out.txt   # 结果必须为空(允许明显的四舍五入,如97.4→97)
  2. 冗余内容黑名单无匹配项。
    references/filler-blocklist.md
    中的“可用于Grep的正则表达式”复制到
    BLOCKLIST
    ,并在输出中搜索:
    bash
    BLOCKLIST='it('\''?s)? worth noting|moving forward|in conclusion|despite (several )?challenges|the team is (committed|aligned)|stakeholders can feel confident'
    grep -iE "$BLOCKLIST" output.md   # 预期无输出;可使用参考文档中的完整正则表达式扩展黑名单
    任何匹配结果都是残留的AI生成特征——需改写对应内容。
  3. 二次优化。 将输出内容通过全局
    humanizer
    (或
    avoid-ai-writing
    )技能的检测模式运行。应无过度使用破折号、排比句或模糊归因的标记。如果标记了本技能遗漏的QA专属问题,也需在此处修复。

Done When

完成标准

  • Every number, severity, error string, and bug description in the output also appears in the input (the
    comm -13
    diff in Verification step 1 is empty, rounding aside).
  • The filler blocklist regex returns zero matches against the output (Verification step 2).
  • No synonym cycling: each distinct test outcome is stated once (no "passed / completed without issues / returned positive results" chains).
  • The output passes the global humanizer/avoid-ai-writing pass with no flagged patterns (Verification step 3).
  • The deliverable is the rewritten version; the original draft is archived or discarded, not shipped alongside.
  • 输出中的所有数字、严重等级、错误字符串和Bug描述均在输入中存在(验证步骤1中的
    comm -13
    对比结果为空,四舍五入除外)。
  • 冗余内容黑名单正则表达式在输出中无匹配项(验证步骤2)。
  • 无同义重复:每个不同的测试结果仅表述一次(无“通过/无问题完成/返回积极结果”这类重复链)。
  • 输出内容通过全局humanizer/avoid-ai-writing检测,无标记模式(验证步骤3)。
  • 交付物为改写后的版本;原始草稿需归档或丢弃,不得与改写版本一同发布。

Related Skills

相关技能

  • ai-bug-triage
    — Bug-report templates and the severity/priority matrix. Triage decides what a bug is and how to classify it; this skill rewrites the prose of an already-classified report.
  • qa-metrics
    — What to actually track. Use it when the report should cite real metrics; this skill makes sure those metrics are stated with context, not as vanity numbers.
  • qa-dashboard
    — Dashboard setup and stakeholder report layout. This skill humanizes the narrative that accompanies the dashboard.
  • quality-postmortem
    — Postmortem structure and root-cause analysis. Build the postmortem there; humanize the writeup here.
  • ai-bug-triage
    — Bug报告模板和严重程度/优先级矩阵。该技能用于判定Bug类型及分类;本技能用于改写已分类报告的措辞。
  • qa-metrics
    — 实际需追踪的指标。当报告需引用真实指标时使用;本技能确保这些指标带有上下文,而非虚荣数字。
  • qa-dashboard
    — 仪表板设置和干系人报告布局。本技能用于优化仪表板配套的叙述内容。
  • quality-postmortem
    — 事后复盘结构和根本原因分析。在该技能中构建复盘内容;在本技能中优化复盘文案。

External Skills

外部技能

These live in the global Claude skill set, not in this repo's
skills/
directory:
  • humanizer
    /
    avoid-ai-writing
    — General-purpose anti-AI-writing engines. When both apply, run the global skill for language-level cleanup (em-dash overuse, tricolon, vague attribution) and this skill for QA-specific structure and fact preservation. If an engineer's real standup/Slack voice is available, feed a sample to the global humanizer's voice mode so the rewrite matches that person rather than a generic "human" register.
这些技能属于全局Claude技能集,不在本仓库的
skills/
目录中:
  • humanizer
    /
    avoid-ai-writing
    — 通用型反AI写作工具。当两者均适用时,使用全局技能进行语言层面的优化(过度使用破折号、排比句、模糊归因),使用本技能进行QA专属的结构优化和事实保留。如果有工程师真实的站会/Slack发言样本,可将其输入全局humanizer的语音模式,让改写内容匹配该工程师的风格,而非通用的“人类”语气。

Reference Files (in
references/
)

参考文件(位于
references/
目录)

  • filler-blocklist.md — Copy-paste blocklist of banned filler phrases, the grep-ready regex used in Verification, synonym-cycling tells, and passive-voice "who broke it" dodges.
  • filler-blocklist.md — 禁用冗余短语的复制粘贴黑名单、验证中使用的可用于Grep的正则表达式、同义重复特征以及被动语态回避问题的表述。