Skip to content
Development
Skill

/dotnet-techne-qa-pipeline

Use when the user asks to verify a story or ticket implementation against its spec - per-AC verdicts, code reuse and design conformance, dead code, then adversarial maintainer verification. Requires the qa/review agent roles registered by scripts/install-codex.sh. Keywords:

From plugin
dotnet-episteme-skills
1214 skills13 agents3 commands3 hooks
+1
Install
$ npx -y skills add Metalnib/dotnet-episteme-skills --skill dotnet-techne-qa-pipeline --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/dotnet-techne-qa-pipeline

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when the user asks to verify a story or ticket implementation against its spec - per-AC verdicts, code reuse and design conformance, dead code, then adversarial maintainer verification. Requires the qa/review agent roles registered by scripts/install-codex.sh. Keywords:

SKILL.md

dotnet-techne-qa-pipeline.SKILL.md
name: dotnet-techne-qa-pipeline
description: "Use when the user asks to verify a story or ticket implementation against its spec - per-AC verdicts, code reuse and design conformance, dead code, then adversarial maintainer verification. Requires the qa/review agent roles registered by scripts/install-codex.sh. Keywords: story QA, acceptance criteria, spec conformance, AC coverage, QA this branch, verify story."
license: MIT
compatibility: Requires a Codex CLI with multi-agent tools enabled (agents.enabled, default true) and the qa-* and review-maintainer roles registered in config.toml. Without the roles, fall back to the single-context dotnet-techne-story-qa skill.

Story QA pipeline (multi-agent)

You are the orchestrator. Do not audit the code yourself - resolve the spec, dispatch, then format the result. Boundary: the review pipeline hunts defects in a diff; this pipeline verifies a story against its **spec**. Same branch, different question.

Paths below are relative to this skill's base directory. The spec-discovery cascade and output contract live in the sibling skill: `../../../skills/dotnet-techne-story-qa/references/`.

Step 0 - Check the budget, then the roles

A spec-mode run spends **four agent turns** - three QA lanes plus the maintainer (three turns in no-spec mode). Say in one line what the run will cost; a small story on a constrained plan is better served by the single-context `dotnet-techne-story-qa` skill.

List your available agent roles. If `qa-acceptance`, `qa-reuse-design`, `qa-dead-code`, or `review-maintainer` is missing, stop and tell the user to run `scripts/install-codex.sh` from the plugin, and use the `dotnet-techne-story-qa` skill in the meantime.

Step 1 - Resolve target

The story diff: the current branch vs its merge-base with the default branch, unless the user names a branch, ticket, or base. Slug the story (ticket key if known, else branch name). Nothing to diff - halt and say so.

Step 2 - Resolve the spec (cascade)

Follow `../../../skills/dotnet-techne-story-qa/references/spec-discovery.md` exactly: explicit spec path or pasted spec → ticket key from the argument or branch name (Jira-style `[A-Z][A-Z0-9]+-\d+`; fetch via an issue-tracker MCP tool when one is available) → repo artifacts (`.episteme/DESIGN-*.md`, PLAN files, docs) → **ask the user** with exactly two options: provide a reference, or continue without a spec. Never infer no-spec mode from a missing path.

Build the spec pack (numbered ACs, constraints, out-of-scope notes, claimed file/task lists, source, issue links and relevant ticket comments as one-liners, and the **contract source of truth** if the ticket names one - an external schema, consumer test suite, WSDL, or OpenAPI document, plus the consumer of the API; fetch its content yourself and put the relevant excerpts in the pack - the read-only roles cannot dereference a URL) and a practices pack (5-15 lines of the project's established conventions; when the host repo ships its own QA skill or QA instructions, fold its rules in - repo-local wins). Workers receive these packs and the diff - never conversation narration.

Step 3 - Fan out

Capture the story diff once (read-only git), then spawn the lanes **in parallel, in one go**: `qa-acceptance` (only in spec mode) with the spec pack, `qa-reuse-design` with the practices pack, `qa-dead-code` with the comment-rules path (`../../../skills/dotnet-techne-story-qa/references/comment-rules.md`; host-repo conventions override it). Each with the repo root, the diff (the roles run read-only, so the inline diff saves redundant work), and the finding block format (Severity / Area / Owner / Location / Evidence / Impact / Fix / Confidence). In no-spec mode announce the skipped acceptance lane - degradation is stated, never silent. If your host caps concurrent agent threads, lanes run in waves - say so, and do not mistake a wave for a finished lane.

Step 4 - Merge, then let the maintainer attack

Merge and dedupe: same Location+Area merges, highest severity and strongest evidence win; number the list. Then spawn `review-maintainer` with the numbered findings, the AC coverage table, the spec pack (its issue links back the "another ticket covers it" counter-argument; its full criterion texts back any AC dispute), the diff scope, and both `../../../skills/dotnet-techne-code-review/references/maintainer-playbook.md` and `../../../skills/dotnet-techne-story-qa/references/falsification.md`. Spawn it even when the lanes returned zero findings in spec mode - an all-IMPLEMENTED table is exactly the result that needs an adversary. Apply its verdicts: drop REFUTED (keep a one-line Dropped list with the refutation), adjust DOWNGRADED and UPGRADED. The maintainer never rewrites the AC table; it may dispute a verdict whose evidence does not hold - a dispute is advisory, listed under the table, and gates CONCERNS. If the maintainer fails to run, say so and gate CONCERNS - unfalsified findings never read as a clean result.

Step 4b - Run the suite (the roles cannot)

The QA roles run read-only - they judge tests statically but cannot build or run them. You can. Build the touched projects, run the relevant tests, record the counts and warnings, and feed the result into the Summary and Checked table. A passing suite you executed outranks a test file only read; a failing build turns a PASS into a FAIL. Skip only when there is no runnable project or the user says so.

Step 5 - Gate, report, persist

Format exactly per `../../../skills/dotnet-techne-story-qa/references/qa-output-contract.md`: the gate (FAIL / CONCERNS / PASS) and the skimmable verdict line first, then Summary (spec source, contract source of truth, build/test result, lanes run and any that failed), AC coverage table, findings ranked by consequence with Owner and Counter-check, the Dropped honesty section, the Checked table, and Yours to call.

Persist the verdict to `.episteme/QA-<slug>.md` (create `.episteme/` if mi

Read more
Ships withdotnet-episteme-skills

DotNet Episteme Skills - a curated, manual-first .NET AI skills library rooted in systematic knowledge (episteme) and shaped by disciplined craft (techne), designed for engineers who prioritise precision over hype.

Get the whole plugin

Other skills on dotnet-episteme-skills.