dotnet-techne-story-qa

dotnet-techne-story-qa is a skill for Claude Code from Metalnib/dotnet-episteme-skills. It costs 0 tokens per session (1,209 once invoked), scanned A, original, MIT.

A workflow for checking whether a .NET ticket or user story was implemented according to its specification and acceptance criteria. It reports each result with file-and-line evidence and does not change the code.

In plain words
What is it for?
Use it to verify completed work against a ticket, check each acceptance criterion, confirm reuse and design conformance, and identify risks that could cause later maintenance problems.
Why use it?
It answers whether the requested behavior is actually present, rather than only looking for general code defects. It also exposes dead code, stale documentation, missing tests, and design mismatches.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: mentions subagents; mentions Claude Code; mentions Codex.

Part of the dotnet-episteme-skills plugin — 14 skills, 3 commands, 2 hooks, 1 MCP server shipped together

Good fit Use it to verify completed work against a ticket, check each acceptance criterion, confirm reuse and design conformance, and identify risks that could cause later maintenance problems.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/metalnib/dotnet-episteme-skills/dotnet-techne-story-qa
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add Metalnib/dotnet-episteme-skills --skill dotnet-techne-story-qa
Clone the repo
git clone --depth 1 https://github.com/Metalnib/dotnet-episteme-skills

Made for: Claude Code.

Or install dotnet-episteme-skills, the plugin that ships this one along with the rest of its 14 skills, 3 commands, 2 hooks, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for dotnet-techne-story-qa

README.md
[![agentmods](https://agentmods.dev/badge/skills/metalnib/dotnet-episteme-skills/dotnet-techne-story-qa/github.svg)](https://agentmods.dev/skills/metalnib/dotnet-episteme-skills/dotnet-techne-story-qa)
Your own site
<a href="https://agentmods.dev/skills/metalnib/dotnet-episteme-skills/dotnet-techne-story-qa"><img src="https://agentmods.dev/badge/skills/metalnib/dotnet-episteme-skills/dotnet-techne-story-qa/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for dotnet-techne-story-qa

Your own site · 80×15
<a href="https://agentmods.dev/skills/metalnib/dotnet-episteme-skills/dotnet-techne-story-qa"><img src="https://agentmods.dev/badge/skills/metalnib/dotnet-episteme-skills/dotnet-techne-story-qa.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 0 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,209 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.01209
Opus 5 $0.00000 $0.00605
Sonnet 5 $0.00000 $0.00242
Haiku 4.5 $0.00000 $0.00121

Measured 12d ago against content hash 14b91d3485ef, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

dotnet-techne-story-qa scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/dotnet-techne-story-qa/SKILL.md · 72 lines

How it starts

The opening of the file, as written. The whole thing — 72 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Story QA (single context)

Check an implementation against the story that asked for it. Answer one question: do the acceptance criteria hold, and what will hurt later? Every answer carries a file:line. Every finding survives an attempt to kill it before it reaches the reader. This is the portable single-context variant; hosts with subagent support run the same dimensions as a parallel fan-out (Claude Code: /dotnet-qa; Codex: the dotnet-techne-qa-pipeline skill; OpenCode: /dotnet-qa). A repo-local QA skill, when one exists, is tuned to that repo - prefer it there.

Boundary

Code review (dotnet-techne-code-review) hunts defects across a diff. This checks a diff against a contract: acceptance criteria, reuse, design conformance, dead code. Same branch, different question - run both when the story is large. Report findings. Change nothing.

Hard gates

Stop and fix these before continuing; they are not style preferences.

  1. Story reference unclear -> ask. Never guess a ticket (see spec discovery below). A QA check against the wrong story is worse than none.
  2. No reference -> no claim. Cut the sentence instead of softening it.
  3. No break test -> no finding. An unfalsified finding stays in your notes.
  4. Read before you judge. Booting, building, and running beats inferring from source.

Core workflow

  1. Target: the story diff - current branch vs its merge-base with the default branch, unless the user names another target. No diff - halt and say so. List the changed files with line counts; read the production code whole for small stories, whole-in-blast-radius for large ones.
  2. Spec: resolve via references/spec-discovery.md and write the AC list down verbatim before reading code (judging against a remembered AC drifts toward the code). No-spec mode only when the user explicitly chooses it; announce the skipped acceptance dimension.
  3. Contract source of truth: if the ticket names an external schema, consumer test suite, WSDL, or OpenAPI document, read it - and read the consumer, not just the schema. This is the step that separates "looks right" from "verified".
  4. Acceptance audit (spec mode only): for each AC, verdict IMPLEMENTED / PARTIAL / MISSING with file:line evidence, plus the proving test - read the test before claiming what it covers; a type-only assertion proves nothing behavioral. Run it: build the project, run the tests, record the counts and warnings - a passing suite you executed outranks a test file you read. Sweep exhaustively where the cost is low (all 23 hand-written names, not a sample). Check constraints and out-of-scope declarations; cross-check claimed file/task lists against git diff --name-only. The story narrative is testimony, not evidence.
  5. Reuse and design: reinvented helpers (search the solution for existing equivalents), missing adoption of the change's own new behavior (needs a supersession signal), conformance to the project's established patterns and siblings, and the convention this foundation sets that later stories will copy.
  6. Dead code: deletion check (removed code whose contract was neither re-established nor retired), newly-dead code nothing reaches (verify with solution-wide searches including tests), stale words - docs, log texts, test names describing behavior that no longer exists.
  7. Comment discipline: check every comment the diff adds or touches against references/comment-rules.md (host-repo conventions override it - say which you applied). Record the exact replacement line (or "delete") per finding.
  8. Negative space: the strongest findings often live outside the AC list. What does the running system need that no story covers? What does the story defer, and does the deferral fail loudly or silently? Tag these backlog.
  9. Falsify every finding: apply references/falsification.md
    • build the strongest argument each finding is wrong, test it, and record survived / weakened / dead. Expect to kill some of your own; disproved suspicions go in Dropped, which is an honesty signal, not a footnote.
  10. Report per references/qa-output-contract.md - gate and verdict line first, then summary, AC coverage, findings (ranked by consequence), Dropped, Checked, Yours to call. Persist .episteme/QA-<slug>.md unless the user asks for report-only. Afterwards you may offer to apply the comment-line fixes; apply them ONLY after the user explicitly confirms.

Read the full file on GitHub · 72 lines

Files

What ships with it

4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 72 lines · 0 tokens per session scan A 14b91d3485ef

Subscribe to this mod's changes

dotnet-techne-story-qa is a skill published in the GitHub repository Metalnib/dotnet-episteme-skills (12 stars, last pushed 3d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,209 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

improve-code-quality

Guided journey from a working-but-untested vibe-coded prototype to a production-ready product with tests, clean structure, a business-rules boundary, and resilience at scale. Orchestrates nine skills phase by phase - working-with-legacy-code, clean-code, refactoring-patterns, software-design-philosophy…

wondelai/skills · 227 tokens

refactor

Refactors code for quality and maintainability. Triggers: refactor, clean up, restructure, improve code, modernize.

softspark/ai-toolkit · 29 tokens

prompt-caching-patterns

Anthropic API prompt caching: TTL, breakpoints, stacking, invalidation, hit rate. Triggers: prompt caching, cachecontrol, cache breakpoint, cache TTL, hit rate.

softspark/ai-toolkit · 43 tokens

code-review

Review .NET changes for bugs, regressions, architectural drift, missing tests, incorrect async or disposal behavior, and platform-specific pitfalls before you approve or merge them. USE FOR: reviewing a pull request or patch in a .NET repository; checking for behavioral regressions, API misuse, or missing tests…

managedcode/dotnet-skills · 118 tokens

test-verification

Requires behavioral, failure-path, and durable-seam evidence for tests and review. Use when writing tests, reviewing test coverage, assessing behavioral test quality, or accepting high-risk behavior on test evidence.

Ezra144israel/governed-agent-skills · 43 tokens

dotnet-best-practices

Ensure .NET/C# code follows maintainable, modern best practices. Use when reviewing or improving C# code, solution structure, async patterns, dependency injection, or testability.

PracticalSwan/agent-skills · 43 tokens