From Tandem
Advisory artefact quality review for planning artefacts (Epic, Feature, Story, Testplan). Use when the user asks to critique, review quality, check a planning artefact, audit a story or epic, or run a pre-refinement quality pass. Detects artefact type and runs the matching check set. Never rewrites the file.
How this skill is triggered — by the user, by Claude, or both
Slash command
/Tandem:critiqueThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Operate as **PM hat**. The user wants a quality critique of a planning artefact before it enters the DoR gate or is shared with the team. This skill is **advisory**: it detects the artefact's type, runs the matching check set, proposes improvements, and reports findings — it never silently rewrites the file and does not promote status.
Operate as PM hat. The user wants a quality critique of a planning artefact before it enters the DoR gate or is shared with the team. This skill is advisory: it detects the artefact's type, runs the matching check set, proposes improvements, and reports findings — it never silently rewrites the file and does not promote status.
_00-Project-Management/30-Epics/EPIC-NN-<slug>.md (canonical) or equivalent flattened path._00-Project-Management/31-Features/EPIC-NN/FEAT-NN.M-<slug>.md or equivalent._00-Project-Management/32-Stories/EPIC-NN/FEAT-NN.M/STORY-NN.M.PP-<slug>.md or equivalent._00-Project-Management/33-Testplans/EPIC-NN/FEAT-NN.M/TESTPLAN-NN.M.PP-<slug>.md or equivalent.Use Read / Glob to detect existence. Treat missing files as "not present" rather than throwing.
_00-Project-Management/90-Standards/SOP.md. This is the authoritative source for what "well-formed" means for every artefact type. Read the relevant sections at runtime; do not rely on a hardcoded copy in this skill._00-Project-Management/91-Templates/ (e.g. EPIC.template.md, FEATURE.template.md, STORY.template.md, TESTPLAN.template.md). Used to verify no required section is absent or still holds a placeholder value.CLAUDE.md — always loaded for project-specific overrides.Read the artefact's type: frontmatter field. Route to the matching check set:
type: value | Dispatch to |
|---|---|
epic | Epic checks |
feature | Feature checks |
story | Story checks |
testplan | Testplan checks |
If type: is absent or unrecognised, infer from the filename prefix (EPIC-, FEAT-, STORY-, TESTPLAN-). If inference is also ambiguous, stop and ask the user which type to treat the artefact as.
Run every check for the detected type. For each check: mark PASS, WARN, or FAIL with a one-line reason citing the specific evidence found (or missing) in the artefact.
okr: or prd_section: reference? Strategic linkage strength: is it traceable to a measurable business outcome, or is it floating?status: to the claim. A mismatch (or unresolvable id) is a major finding (see the Story-check definition for the tell + fixture). Advisory only.status: to the claim. A mismatch (or unresolvable id) is a major finding (see the Story-check definition for the tell + fixture). Advisory only.feature: and epic: frontmatter set; risks section non-empty; estimate set. A Story with DoR gaps should go through /Tandem:refine-backlog before being pulled to work — that gate, not this skill, is the authoritative promotion path.XL, the Story is too large: flag it for splitting before promotion. A missing estimate is a WARN.not-started, flag the absence.type_of_work set — the type_of_work: frontmatter field must be set to a concrete discipline (frontend, backend, infra, data, docs). A missing or placeholder value is a FAIL.STORY-/FEAT-/EPIC-/ADR-/BACKLOG-) and makes a status claim about them ("X is never-started / superseded / done / obsolete") or proposes to retire / archive / delete / supersede / mutate them, resolve those ids and compare their actual status: to the claim. A mismatch (or an unresolvable id) is a major finding — the premise is empirically false. Advisory only: critique never rewrites; the blocking enforcement lives in refine-backlog's DoR gate. Fixture: STORY-15.1.02 claimed "STORY-04.6.01–05 are never-started/superseded" and proposed archived, but all five are done — this check flags that as a major.Command: — each Test Case must carry a Command: that Claude (or a CI runner) can execute unattended. A TC whose Command: is blank, says "manual verification", or says "have a human check" is a FAIL. The Command: must be a runnable shell or CLI instruction — no placeholders, no prose descriptions.After running all checks, convert every non-PASS result into a finding. Assign each finding a severity (see §Severity model below), attach a concrete suggested fix, then emit the findings severity-ranked: blockers first, then majors, then minors.
Every finding carries exactly one of three severity levels. Severity-ranked output means all findings are ordered blocker → major → minor in the report.
| Level | Meaning | Typical check-verdict origin |
|---|---|---|
| blocker | Must fix before the DoR gate; leaving it in place will cause rework or invalidate the artefact. | FAIL on a gate-critical check (e.g. missing ACs, no type_of_work:, blank TC Command:, XL estimate un-split). |
| major | Should fix; the artefact is functional but the gap degrades quality or traceability. | FAIL on a quality check that does not directly block promotion (e.g. weak strategic linkage, floating dependency), or a WARN that represents a meaningful quality risk. |
| minor | Polish or nit; the artefact is DoR-ready but could be cleaner. | Soft WARN (e.g. a slightly vague AC that is still testable, a recommended-but-not-required field). |
Per-check verdicts (PASS / WARN / FAIL) map to finding severities as follows:
Every finding (blocker, major, or minor) must include a concrete suggested fix: a specific, minimal, actionable edit — not a general directive. Examples of correct form:
type_of_work: frontend to the frontmatter after the estimate: line."p95 load time < 300 ms measured by Lighthouse CI.""Improve this section" or "add more detail" are not acceptable suggested fixes.
not-started → ready) stays the DoR gate's job. The /Tandem:refine-backlog skill owns that promotion path; this critique skill complements it by surfacing quality issues upstream. Running critique before refinement reduces DoR-gate failures but does not replace the gate.type_of_work: frontend line to frontmatter" not "fill in the missing fields".Emit the following sections in order. Findings are severity-ranked (blockers → majors → minors).
Artefact: <path> (<type>) — <status>
Critique summary: B blocker / M major / N minor / K PASS
Blockers (must fix before DoR gate)
For each blocker finding: check name · one-line diagnosis · Suggested fix: <specific, minimal, actionable edit>.
Major findings (should fix)
For each major finding: check name · one-line diagnosis · Suggested fix: <specific, minimal, actionable edit>.
Minor findings (polish / nit)
For each minor finding: check name · one-line diagnosis · Suggested fix: <specific, minimal, actionable edit>.
All checks PASS (list count only — "K checks passed")
Recommended next step:
/Tandem:critique again, then proceed to /Tandem:refine-backlog./Tandem:refine-backlog when ready./Tandem:refine-backlog for the official DoR gate.The operator MAY request a persisted HTML critique artefact. This is optional — it is NOT produced by default. Only generate it when the operator explicitly asks (e.g. "save a critique report" or "write the HTML artefact").
When requested, write the artefact to:
41-Reports/CRITIQUE-<artefact-id>-<YYYY-MM-DD>.html
Where <artefact-id> is the artefact's ID token (e.g. STORY-05.1.02) and <YYYY-MM-DD> is today's date.
The HTML file must contain the full severity-ranked findings report (same content as the chat output), structured for human readability. The skill describes the artefact and writes its content; it does not bundle a renderer or stylesheet beyond basic inline HTML. Use semantic HTML elements (<h1>, <h2>, <table>, <ul>) — no external CSS dependencies.
This follows the kit's 41-Reports/ HTML-output convention: all generated report files live under 41-Reports/ at the project root, named with a type prefix, artefact ID, and ISO date.
status: in any file — status promotion is not its role.npx claudepluginhub data-ai-xyz/tandem --plugin TandemGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.